CentOS 缓存优化提升网站用户体验
一 整体思路与分层策略
二 浏览器与协议层优化
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType text/html "access plus 1 hour"
</IfModule>
<IfModule mod_headers.c>
Header set Cache-Control "public, max-age=31536000" env=!NO_CACHE
Header set Cache-Control "no-cache, must-revalidate" env=NO_CACHE
</IfModule>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
</IfModule>
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
修改后执行:sudo systemctl restart httpd 生效。三 反向代理与页面缓存
backend default {
.host = "127.0.0.1";
.port = "80";
}
sub vcl_recv {
if (req.method == "PURGE") {
return (purge);
}
return (hash);
}
sub vcl_backend_response {
set beresp.ttl = 120s;
set beresp.grace = 60s;
}
启动:sudo systemctl start varnish && sudo systemctl enable varnish(配合 systemd 或传统方式设置监听端口与后端)。http {
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
location / {
proxy_cache my_cache;
proxy_pass http://127.0.0.1:8080;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
}
}
}
以上可显著缩短响应时间并提升高峰并发下的稳定性。四 应用层缓存
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
sudo yum install memcached && sudo systemctl start memcached && sudo systemctl enable memcachedsudo yum install php-pecl-memcached(或 php-pecl-redis 搭配 Redis)pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
以上措施可显著缩短后端处理时间,提升整体吞吐与稳定性。五 系统与文件系统层优化
# 查看
cat /proc/sys/vm/dirty_ratio
cat /proc/sys/vm/dirty_background_ratio
cat /proc/sys/vm/vfs_cache_pressure
# 示例:放宽脏页回写阈值,降低 VFS 回收倾向(请结合内存与负载评估)
echo 40 > /proc/sys/vm/dirty_ratio
echo 10 > /proc/sys/vm/dirty_background_ratio
echo 50 > /proc/sys/vm/vfs_cache_pressure
# 持久化
echo "vm.dirty_ratio=40" >> /etc/sysctl.conf
echo "vm.dirty_background_ratio=10" >> /etc/sysctl.conf
echo "vm.vfs_cache_pressure=50" >> /etc/sysctl.conf
sysctl -p
mount -o remount,noatime /var/www
echo 1 > /proc/sys/vm/drop_caches),仅在测试或异常时配合 sync 使用,以免影响稳定性与命中率。