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

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

Есть идеи, почему не работает кеш?

0
задан 11 March 2019 в 11:24
1 ответ

Вы не можете fastcgi_cache , потому что вы никогда не fastcgi_pass в PHP-FPM.

В nginx кеш привязан к определенному методу отправки запросов вверх по течению, например fastcgi, proxy, uwsgi и т. д.

Вместо этого вы можете использовать proxy_cache или, что еще лучше, просто fastcgi_pass в PHP-FPM прямо из nginx и избавиться от Apache поскольку это избыточно.

1
ответ дан 4 December 2019 в 15:44

Теги

Похожие вопросы