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

Nginx не кеширует страницы на диск

Я настраиваю 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;