У меня есть сайт Django, на котором каждые несколько секунд публикуется новый контент.Настройка микрокаши прокси-сервера Nginx для определенного места в блоке сервера
Уполномоченные пользователи на домашней странице моего сайта размещаются на /
, тогда как неавторизованные на /unauth
. /unauth
похож по размеру как /
, но без каких-либо персональных данных. На моем веб-сайте используется nginx (обратный прокси) с пушкой, как вверх по течению.
Я пытаюсь реализовать nginx microcaching на location/unauth
, но до сих пор не увенчался успехом (ничего не появляется в /var/cache/nginx
). Добавление add_header X-Cache-Status $upstream_cache_status;
в location/unauth
ничего не дает в ответе. Это почти так же, как блок loction полностью игнорируется (!).
Можете ли вы помочь мне устранить эту проблему? Дайте мне знать, если вы хотите увидеть весь nginx.conf.
Я добавил следующее в моем Nginx конфигурационном файле:
#outside the server block
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=100m inactive=6m;
#inside the server block
location /unauth {
add_header X-Cache-Status $upstream_cache_status;
proxy_cache my_cache;
proxy_cache_lock on;
proxy_cache_valid 200 1s;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
proxy_buffering on;
proxy_buffers 24 4k;
proxy_buffer_size 2k;
proxy_busy_buffers_size 8k;
try_files $uri @http_proxy_to_app;
}
Заголовок ответа HTTP производится из http://example.com/unauth/
выглядит следующим образом:
Status: HTTP/1.1 200 OK
Server: nginx
Date: Sun, 05 Feb 2017 00:10:03 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Vary: Accept-Encoding
Expires: Sun, 05 Feb 2017 00:10:13 GMT
Vary: Cookie
Last-Modified: Sun, 05 Feb 2017 00:10:03 GMT
Cache-Control: max-age=10
X-Frame-Options: SAMEORIGIN
Content-Encoding: gzip
Можете ли вы добавить «add_header X-Cache-Status $ upstream_cache_status;» в блок местоположения и повторить запрос? Это предоставит некоторую информацию о том, не попал ли запрос в кеш. –
Попробуйте изменить его на www-data: www-data. Это также может быть связано с тем, что вы выполняете внутреннее перенаправление на @http_proxy_to_app. В качестве теста вы можете добавить конфигурацию кеша в этот блок? –