Назад | Перейти на главную страницу

NGINX FastCGI Cache на NGINX> Apache> PHP-FPM

Ранее у меня были неудачные попытки заставить работать кеширование 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, поскольку он избыточен.