2016-04-12 9 views
1

私のようなのnginxの設定を作成しましたヘッダー付きx-proxy-cache:HITリフレッシュ後はヒットします。しかし、このマシンの他のブラウザ(Opera、Edge)からページを開くと、このリクエストはMISSです。ファイルシステムでは、同じ内容のmd5sumハッシュを持つ2つのファイルを作成します。例えば、ファイル名438476ac40665c852d3acde1acf769f1ヘッド:nginxのproxy_cacheキーハッシュ変更が

^C^@^@^@^@^@^@^@/^V 
W^@^@^@^@��^CW^@^@^@^@'^O 
W^@^@^@^@m�,�^@^@�^@�^A^N"5703e3a7-67e"^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$ 
KEY: /js/catalog.js 
HTTP/1.1 200 OK 
Server: nginx 
Date: Tue, 12 Apr 2016 15:07:19 GMT 
Content-Type: application/javascript 
Content-Length: 1662 
Last-Modified: Tue, 05 Apr 2016 16:11:19 GMT 
Connection: close 
Vary: Accept-Encoding 
ETag: "5703e3a7-67e" 
Accept-Ranges: bytes 

同じ内容を有する第二のファイル名a6f57423c2220fba3ada5f516f6dd91cと、このヘッド:ドキュメントによって

^C^@^@^@^@^@^@^@  ^V 
W^@^@^@^@��^CW^@^@^@^@^A^O 
W^@^@^@^@m�,�^@^@�^@�^A^N"5703e3a7-67e"^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$ 
KEY: /js/catalog.js 
HTTP/1.1 200 OK 
Server: nginx 
Date: Tue, 12 Apr 2016 15:06:41 GMT 
Content-Type: application/javascript 
Content-Length: 1662 
Last-Modified: Tue, 05 Apr 2016 16:11:19 GMT 
Connection: close 
Vary: Accept-Encoding 
ETag: "5703e3a7-67e" 
Accept-Ranges: bytes 

ファイルの名前は、キーからMD5でなければならない、とエコーがあります - n '/js/catalog.js' | md5sumは、ファイルの名前(最初に要求されたもの)としてのa6f57423c2220fba3ada5f516f6dd91cです。私は各ユーザー|ブラウザごとにサーバーjs | cssにキャッシュしたくありません。一度だけキャッシュし、キャッシュからすべてのユーザーの要求を受け取ります。 P.S.私のサイトはhttps、http2、nginx 1.9.14のバージョンを使用します。

答えて

3

Vary:Accept-Encodingヘッダーに基づいて、私はEdgeとOperaが要求に対して異なる「Accept-Encoding」ヘッダーを送信すると推測します。たとえば、単に「gzip」を送信し、他方は「gzip、deflate」を送信することができます。それらは技術的に異なるAccept-Encoding 要求ヘッダーです。

あなたは起源があなたが追加することができますブラウザ間では動作しません有意義に異なるエンコーディングを送信しないことがわかっている場合:

proxy_ignore_headers Vary; 

あなたは既にproxy_ignore_headersを持っているので、あなたはおそらくちょうどそれに追加することができます。

すべての主要ブラウザはgzipをサポートしているため、リスクは非常に低い可能性があります。しかし、 "webp"はAccept-Encodingによっても行われるので、原点がwebpを扱うことができる場合、いくつかの画像で驚くべき結果を生むことがあります。

+0

私はキャッシュキーのために "Accept-Encoding"ヘッダーを無効にすることができますか、それらのいくつか? – moledet

+0

マイ・コメントが更新されました –

関連する問題