我在 Fedora 上将 fastcgi 缓存与 nginx 1.4.4 结合使用,效果很好,直到我使用以下命令清除缓存目录:
find /var/nginx/cache -type f -exec rm -f {} \;
此后,nginx 将不会恢复缓存任何请求,直到 nginx 重新启动。
根据伊戈尔无需重启。那么如何才能让 nginx 恢复缓存而无需重启呢?
这是我的虚拟主机文件:
fastcgi_cache_path /var/nginx/cache levels=1:2
keys_zone=PAGE_CACHE:60m
inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_buffers 256 4k;
add_header X-Cache $upstream_cache_status;
server {
listen 80 default;
server_name localhost;
root /var/www/website/root;
location = /favicon.ico {
return 204;
}
location ~* \.(php|cgi|asp|aspx|jsp)$ {
return 404;
}
try_files $uri @fcgi;
location @fcgi {
fastcgi_cache PAGE_CACHE;
fastcgi_cache_valid 200 5m;
limit_conn tenmins 3;
limit_req zone=gulag burst=50 nodelay;
fastcgi_pass unix:/tmp/fastcgi.socket;
include /etc/nginx/fastcgi.conf;
fastcgi_param SCRIPT_NAME /;
}
}
答案1
在我的 nginx.conf 中更改此项:
sendfile off;
重启系统解决了这个问题。