2016-11-09 6 views
0

最初に:Nginxでの経験はあまりありません。Varyヘッダーが無視されていないときにNginxがキャッシングしない

私はちょうどかかわらず、問題に直接進むでしょう:

nginxの設定ファイル:

user www-data; 
    worker_processes auto; 
    pid /run/nginx.pid; 
    events { 
     worker_connections 2048; 
     multi_accept on; 
    } 
    http { 
    proxy_cache_path /var/nginx_cache levels=1:2 keys_zone=STATIC:10m inactive=24h max_size=10g; 

upstream server { 
    server -removed-; 
} 

server { 
    listen 80; 
    server_name -removed-; 
    location/{ 
      gzip on; 
      gzip_disable "MSIE [1-6]\.(?!.*SV1)"; 
      gzip_http_version 1.1; 
      gzip_min_length 500; 
      gzip_vary on; 
      gzip_proxied any; 
      gzip_types 
          application/atom+xml 
          application/javascript 
          application/json 
          application/ld+json 
          application/manifest+json 
          application/rss+xml 
          application/vnd.geo+json 
          application/vnd.ms-fontobject 
          application/x-font-ttf 
          application/x-web-app-manifest+json 
          application/xhtml+xml 
          application/xml 
          font/opentype 
          image/bmp 
          image/svg+xml 
          image/x-icon 
          text/cache-manifest 
          text/css 
          text/plain 
          text/vcard 
          text/vnd.rim.location.xloc 
          text/vtt 
          text/x-component 
          text/x-cross-domain-policy 
          text/js 
          text/xml 
          text/javascript; 


          add_header X-Cache-Status $upstream_cache_status; 
          proxy_cache STATIC; 
          proxy_set_header Host $host; 

      ---->     proxy_ignore_headers Vary; <----- 

          proxy_cache_key $host$uri$is_args$args; 
          proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504; 
          proxy_pass -removed-; 

    } 



    } 
} 

をするとライン 'proxy_ignore_headersは変わります;' HTMLページを含むすべてがキャッシュされます。この行を削除すると、HTMLページを除くすべてがキャッシュに入れられます。どうしてこれなの?

Nginxは、元のサーバーによってVaryヘッダーが送信されている場合でも、HTMLページをキャッシュします。

私は誰かが私を助けることを願っています:)。

レスポンスヘッダは、次のとおり

は変化:ホスト、コンテンツ言語、コンテンツタイプ、コンテンツエンコード固定

答えて

0

を:

nginxののソースコードでは42の最大値が設定されていますVaryヘッダーで使用されている文字。私の場合、51文字のため、Vary:*(no-cache)として処理されているVaryヘッダーがあります。最大値を84に設定すると、私のために修正されました。

この記事では、これについて詳しく説明します。

https://thedotproduct.org/nginx-vary-header-handling/

クレジットという短い記事を投稿男へ。

関連する問題