Я настраиваю Nginx как веб-сервер, обрабатывающий PHP через php-fpm в Ubuntu 18.04. Это отлично работает и работает молниеносно. Я пытаюсь настроить его для кеширования страниц, чтобы увидеть, станет ли производительность еще лучше. Однако мне не удалось заставить его кешировать страницы на диск. Каталог, который я указал для сохранения страниц, в настоящее время открыт для всех (777).
Вот соответствующие части моих файлов конфигурации и пример заголовка запроса страницы:
nginx.conf:
http {
proxy_cache_path /var/www/ma_cache levels=1:2 keys_zone=ma_cache:10m use_temp_path=off max_size=20g;
}
сайты-доступные / mysite.conf:
server {
proxy_buffering on;
proxy_cache ma_cache;
proxy_cache_valid 720h;
proxy_ignore_headers Set-Cookie;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}
Образец ответа:
content-encoding: gzip
content-type: text/html; charset=UTF-8
date: Thu, 14 Nov 2019 21:08:13 GMT
server: nginx/1.14.0 (Ubuntu)
status: 200
Должно быть что-то, что я неправильно понимаю или просто дурак. Я надеюсь, что кто-нибудь может указать мне правильное направление.
Поскольку мы используем Nginx не как прокси, а как сам веб-сервер, параметры конфигурации меняются по сравнению с документацией. Параметры кеширования, предваряемые proxy_
вместо этого предваряются fastcgi_
вот так:
fastcgi_cache_path /var/www/ma_cache levels=1:2 keys_zone=ma_cache:10m use_temp_path=off max_size=20g;
fastcgi_cache ma_cache;
fastcgi_cache_valid 720h;
fastcgi_ignore_headers Set-Cookie;