NGINX 不缓存图像或发送添加的标头

NGINX 不缓存图像或发送添加的标头

add_header 指令和代理指令似乎被忽略了。我使用 nginx 作为 cdn 来提供图片,我希望它缓存图片。下面是我的 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;
  }

}

答案1

我认为你误解了如何使用。如果你正在使用,proxy_cache你必须有一个(即,一个单独的原始服务器,这个 nginx 实例充当其反向代理)。你可以阅读更多关于如何设置原始服务器的信息proxy_passproxy_cache这里

相关内容