配置Nginx的FastCGI缓存有效期时间需要进行以下几个步骤:
- 在Nginx配置文件中启用FastCGI缓存模块
在Nginx配置文件的http模块中添加如下代码
http {
...
fastcgi_cache_path /path/to/cache levels=1:2 keys_zone=my_cache_zone:10m inactive=60m;
...
}
这段代码中定义了FastCGI缓存的存储位置、缓存目录结构、缓存空间的名字以及缓存的过期时间。
- 在server模块中启用FastCGI缓存
在server模块中添加如下代码
location ~ \.php$ {
fastcgi_cache my_cache_zone;
fastcgi_cache_valid 200 60m;
fastcgi_cache_bypass $http_pragma;
fastcgi_cache_revalidate on;
include fastcgi_params;
...
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
这段代码中使用正则表达式匹配所有的PHP请求。然后使用fastcgi_cache指令启用FastCGI缓存。使用fastcgi_cache_valid指令设置缓存比对响应状态码和过期时间,这里设置为200状态码60分钟后过期。使用fastcgi_cache_bypass指令用于检查是否会跳过缓存。fastcgi_cache_revalidate指令用于刷新缓存。最后添加include fastcgi_params,将所有FastCGI参数包含到当前请求。使用fastcgi_pass指令将请求转发给PHP-FPM处理。
- 检查FastCGI缓存是否生效
在server模块中添加类似如下代码,启用Nginx的access日志记录功能:
server {
access_log /var/log/nginx/access.log;
...
}
接下来访问PHP网页,检查access日志记录中是否有缓存Hit的记录。如果有,则表示FastCGI缓存已经生效,如果没有则表示FastCGI缓存没有生效。
示例:
例如我们希望对于php请求启用FastCGI缓存并设置缓存有效期为半小时,则需要进行如下配置:
http {
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache_zone:10m inactive=60m;
}
server {
location ~ \.php$ {
fastcgi_cache my_cache_zone;
fastcgi_cache_valid 200 30m;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}
其中fastcgi_cache_valid 200 30m;
表示缓存的有效期为30分钟。
又例如,我们希望对WP前端页进行FastCGI缓存的话,可以按如下代码进行配置:
http {
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache_zone:10m inactive=60m;
}
server {
location / {
try_files $uri $uri/ /index.php?$query_string;
# Enable cache for WP front-end pages
fastcgi_cache my_cache_zone;
fastcgi_cache_valid 200 30m;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
# Bypass cache for backend requests
fastcgi_cache_bypass $http_pragma;
fastcgi_cache_revalidate on;
fastcgi_cache_valid 200 1m;
# Add cache headers to backend responses
add_header X-Cache $upstream_cache_status;
add_header Cache-Control "public, max-age=$cache_max_age";
}
}
其中location /
设置了对网站首页和其他页面的缓存,fastcgi_cache_valid 200 30m;
表示缓存的有效期为30分钟。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何配置Nginx的FastCGI缓存有效时间? - Python技术站