我正在 Ubuntu 18.04 上将 Nginx 设置为通过 php-fpm 处理 PHP 的 Web 服务器。它运行良好,速度快如闪电。我试图将其配置为缓存页面,以查看性能是否会变得更好。但是,我无法让它将页面缓存到磁盘。我指定的用于保存页面的目录当前设置为对世界开放(777)。
以下是我的配置文件的相关部分和示例页面请求标头:
nginx.conf:
http {
proxy_cache_path /var/www/ma_cache levels=1:2 keys_zone=ma_cache:10m use_temp_path=off max_size=20g;
}
站点可用/mysite.conf:
server {
proxy_buffering on;
proxy_cache ma_cache;
proxy_cache_valid 720h;
proxy_ignore_headers Set-Cookie;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}
示例响应:
content-encoding: gzip
content-type: text/html; charset=UTF-8
date: Thu, 14 Nov 2019 21:08:13 GMT
server: nginx/1.14.0 (Ubuntu)
status: 200
肯定是我理解错了什么,或者我太愚蠢了。我希望有人能给我指明正确的方向。
答案1
由于我们不是将 Nginx 用作代理,而是将其本身用作 Web 服务器,因此配置选项与文档相比有所变化。以 开头的缓存选项改为以proxy_
开头,fastcgi_
如下所示:
fastcgi_cache_path /var/www/ma_cache levels=1:2 keys_zone=ma_cache:10m use_temp_path=off max_size=20g;
fastcgi_cache ma_cache;
fastcgi_cache_valid 720h;
fastcgi_ignore_headers Set-Cookie;