У меня есть проксирование и кеширование запросов сервера nginx к бэкэнду django. Заголовки, когда я делаю запрос curl to django gunicorn, следующие:
HTTP/1.1 200 OK
Server: gunicorn/19.9.0
Date: Mon, 05 Aug 2019 17:30:55 GMT
Connection: close
Vary: Cookie, Accept-Language
Content-Type: text/html; charset=utf-8
Content-Language: en
Set-Cookie: csrftoken=AV42uqHK4znT5iGHnr4dzaKNUaQmKjw0; expires=Mon, 03-Aug-2020 17:30:55 GMT; Max-Age=31449600; Path=/
В настоящее время я игнорирую следующие заголовки:
proxy_ignore_headers X-Accel-Redirect;
proxy_ignore_headers X-Accel-Expires;
proxy_ignore_headers X-Accel-Limit-Rate;
proxy_ignore_headers X-Accel-Buffering;
proxy_ignore_headers X-Accel-Charset;
proxy_ignore_headers Expires;
proxy_ignore_headers Cache-Control;
proxy_ignore_headers Set-Cookie;
proxy_ignore_headers Vary;
А для кеша у меня есть следующие конфигурации:
proxy_buffering on;
proxy_cache STATIC;
proxy_cache_valid any 5m;
add_header X-Proxy-Cache-Status $upstream_cache_status;
add_header X-Proxy-Cached-Date $upstream_http_date;
Сейчас происходит следующее: когда я делаю запросы к серверу, я получаю кэшированный контент примерно в течение одной минуты, а затем получаю MISS. Меня не волнуют пользовательские сеансы, поэтому игнорирование set-cookie не является проблемой.
Где могла быть проблема? Как я могу это отладить?
Спасибо!
Если у всех одна и та же проблема, моя проблема заключалась в том, что я смешивал папку кеша приложения django с папкой кеша сервера nginx. Итак, django случайным образом удалял файлы кеша nginx.