Ранее у меня были неудачные попытки заставить работать кеширование Nginx Fast-CGI в Nginx > Apache > PHP-FPM
config, поэтому я начал с нового сервера, но проблемы все еще возникают.
На сервере чистый Ubuntu 16.04
установить с Nginx 1.14.2
, Apache 2.4.18
и PHP-FPM 5.6
(просто для тестирования).
Мой /etc/nginx/nginx.conf
config есть в наличии, поскольку я внес изменения только в 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
на данный момент).
Есть идеи, почему кеш не работает?
Ты не можешь fastcgi_cache
потому что ты никогда fastcgi_pass
в PHP-FPM.
В nginx кеш привязан к определенному методу отправки запросов вверх по течению, например. fastcgi, прокси, uwsgi и т. д.
Вы можете использовать proxy_cache
вместо этого, а еще лучше, просто fastcgi_pass
в PHP-FPM прямо из nginx и избавьтесь от Apache, поскольку он избыточен.