96SEO 2025-10-30 19:00 0
Nginx代理缓存是提高网站性能的有效手段,通过缓存静态资源,减少服务器负载。

在Nginx配置文件中,添加缓存路径和相关参数。
http {    fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_fcgi_cache:10m max_size=1g inactive=60m use_temp_path=off;}
针对.php文件的location, 添加以下配置:
server {    location ~ \.php$ {        fastcgi_pass unix:/var/run/php/php7.4-;  # 根据PHP版本调整        fastcgi_cache my_fcgi_cache;                     # 使用FastCGI缓存区域        fastcgi_cache_key "$scheme$request_method$host$request_uri";  # 缓存键        fastcgi_cache_valid 200 302 10m;                 # 200/302状态码缓存10分钟        fastcgi_cache_valid 404 1m;                      # 404状态码缓存1分钟        add_header X-FastCGI-Cache $upstream_cache_status;  # 添加FastCGI缓存状态头        include fastcgi_params;        fastcgi_param SCRIPT_FILE不结盟E $document_root$fastcgi_script_name;    }}
若需避免某些路径被缓存,可添加fastcgi_no_cache指令:
location ~* // {    fastcgi_no_cache 1;    fastcgi_cache_bypass 1;}
访问PHP页面检查响应头中的X-FastCGI-Cache字段。
FastCGI缓存直接缓存PHP脚本的施行后来啊,比代理缓存更精准。
编译安装memcache源码包, 安装完成后会有一个路径,复制下来。
编辑php的配置文件, 写入以下内容:
7....
PHP脚本缓存可避免重复编译脚本,显著提升PHP施行速度。
在http块中添加以下内容, 定义缓存路径、大小及存活规则:
http {    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;    # levels=1:2 表示缓存目录层级    # keys_zone=my_cache:10m 定义缓存区域名称及共享内存大小    # max_size=1g 缓存最大容量    # inactive=60m 缓存文件60分钟未被访问则自动删除}
针对需要缓存的location,添加以下配置:
server {    listen 80;    server_name ;    location / {        proxy_pass http://backend;  # 后端服务器地址        proxy_cache my_cache;       # 使用定义的缓存区域        proxy_cache_valid 200 302 10m;  # 200/302状态码缓存10分钟        proxy_cache_valid 404 1m;       # 404状态码缓存1分钟        add_header X-Proxy-Cache $upstream_cache_status;  # 添加缓存状态头    }}
通过curl -I http://查看响应头,若出现X-Proxy-Cache: HIT则表示缓存命中。
MySQL缓存可减少重复查询的磁盘IO,提升数据库响应速度。
在my.cnf文件中添加以下内容:
query_cache_type=1  # 开启查询缓存query_cache_size=64M  # 查询缓存大小
InnoDB缓冲池用于缓存表数据和索引, 是MySQL性能优化的关键参数:
innodb_buffer_pool_size=1G  # 缓冲池大小innodb_buffer_pool_instances=8  # 缓冲池实例数
重启MySQL服务,使配置生效。
对图片、CSS、JS等静态文件,可在Nginx中配置更长缓存时间:
location /static/ {    alias /var/www/static/;    expires 30d;  # 缓存30天    add_header Cache-Control "public, no-transform";}
对于Nginx缓存,可设置定时任务清理旧缓存:
sudo find /var/cache/nginx -type f -mtime +7 -delete  # 删除7天前的缓存文件
通过Nginx的$upstream_cache_status或OPcache的opcache_get_status函数,定期监控缓存命中率。
通过以上配置,可显著提升LNMP架构的网站性能,减少服务器负载。需,达到最佳效果。
Demand feedback