Директива add_header и директива proxy игнорируются. Я использую nginx в качестве компакт-диска для обслуживания изображений, и я хотел бы, чтобы он кешировал изображения. Ниже приведены мои сайты, доступные для cdn. Изображения обслуживаются нормально, но я не вижу X-Cache-Status в заголовках и, похоже, не заполняет путь кеша каким-либо контентом.
Что мне не хватает?
Версия nginx: nginx / 1.10.0 (Ubuntu)
proxy_cache_path /var/www/html/nginx-cache levels=1:2 keys_zone=cdn:100m max_size=25g inactive=60m use_temp_path=off;
# Expires map
map $sent_http_content_type $expires {
default off;
text/html epoch;
text/css max;
application/javascript max;
~image/ max;
}
server {
listen 80;
server_name applebeescdn;
# Proxy Cache
proxy_cache cdn;
proxy_cache_key "$host$request_uri $cookie_user";
proxy_cache_min_uses 1;
proxy_cache_valid 200 302 120m;
proxy_cache_valid 404 1m;
proxy_ignore_headers "Set-Cookie";
proxy_hide_header "Set-Cookie";
proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_buffering on;
location / {
expires $expires;
root /var/www/html/;
add_header 'X-Cache-Status' "$upstream_cache_status" always;
}
}
Я думаю, вы не понимаете, как использовать proxy_cache
. Вы должны иметь proxy_pass
если вы используете proxy_cache
(то есть отдельный исходный сервер, для которого этот экземпляр nginx действует как обратный прокси). Вы можете узнать больше о том, как настроить исходный сервер Вот.