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