NGINX > Apache > PHP-FPM 上的 NGINX FastCGI 缓存

NGINX > Apache > PHP-FPM 上的 NGINX FastCGI 缓存

我之前尝试让 Nginx Fast-CGI 缓存在配置中工作失败了Nginx > Apache > PHP-FPM,所以我在新的服务器上重新开始,但仍然遇到问题。

服务器已全新Ubuntu 16.04安装,包括Nginx 1.14.2Apache 2.4.18PHP-FPM 5.6(仅用于测试)。

我的/etc/nginx/nginx.conf配置是库存,因为我只在 vhost 中做了更改(服务器块之外的任何内容都是有效的nginx.conf)。

我的 apache2 test.mysite.com.conf 是

<VirtualHost 127.0.0.1:8080>
        ServerName test.mysite.com
        DocumentRoot /var/www/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php/php5.6-fpm.sock|fcgi://localhost/var/www/
</VirtualHost>

为了测试缓存,我进行了以下操作/var/www/cachetest.php

<?php
echo time();
?>

然而测试http://test.mysite.com/cachetest.php每秒都在变化,因此/etc/nginx/cache总是空的(777目前如此)。

知道为什么缓存不起作用吗?

答案1

你不能,fastcgi_cache因为你从未fastcgi_pass使用过 PHP-FPM。

在 nginx 中,缓存附加到向上游发送请求的特定方法,例如 fastcgi、proxy、uwsgi 等。

您可以改用proxy_cache,或者更好的是,直接fastcgi_pass从 nginx 转到 PHP-FPM,并摆脱 Apache,因为它是多余的。

相关内容