English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
nginx.conf часть содержимого:
proxy_temp_path /nginx/cache/temp; proxy_cache_path /nginx/cache/path levels=1:2 keys_zone=cache_test:2048m inactive=7d max_size=10g; ...... ...... location ~ .(gif|jpg|jpeg|png)$ { proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie; proxy_pass http://upstreams; #Установить кэш cache_test; #Установить ключ кэширования #Установить, что ответы с кодом состояния 200 и 304 можно кэшировать, и время кэширования составляет 1 день proxy_cache_valid 200 304 1d; expires 30d; }
Причины не кэширования nginx
По умолчанию, кэширование nginx зависит от совместно принятого решения между сервером кэширования nginx и сервером источника. Сервер кэширования должен строго следовать заголовкам ответа сервера источника, чтобы определить, кэшировать ли ответ и как долго.
Основные заголовки следующие:
Cache-control: no-cache, no-store
Если эти два значения присутствуют, сервер кэширования nginx绝对不会 кэшировать.
Expires: 1980-01-01
Если дата早于 текущее время, кэширование не будет производиться.
Решение проблемы не кэширования
Метод 2.1:
Измените заголовки ответа программы или веб-сервера источника
Метод 2.2:
Прямо в nginx-прокси добавьте следующую строку:
proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;
Обобщение
Вот и все, что есть в этой статье. Надеюсь, что контент статьи поможет вам в изучении или работе. Если у вас есть вопросы, оставляйте комментарии.