2011-07-09 7 views
27

私はnginxサーバーを持っており、CSSおよびJSファイル用にVary:Accept-Encodingヘッダーを送信する方法に関する情報を見つけることができません。誰もこれについての情報を持っていますか?Set Vary:Accept-Encoding Header(nginx)

ありがとうございます!

答えて

39

これはnginx documentationからのものです。

gzip_vary 
syntax: gzip_vary on|off 
default: gzip_vary off 
context: http, server, location 

"Vary: Accept-Encoding"の応答ヘッダを有効にします。この ヘッダーは、IE 4-6がバグのためにコンテンツをキャッシュしないようにします(2を参照)。

ちょうどgzip_vary on;を追加すると、それはその仕事を行う必要があります。

また、gzip、gzip_static、またはgunzipのいずれかの指示がアクティブであることを確認してください。あなたがそれを設定したいドメイン/サブドメインのserver {インサイド

+2

これは正しい答えではないと思います。少なくとも、一人ではなく、おそらくすべてのnginxバージョン(これは私が知ることができません)ではありません。 gzip_varyは単独でgzipを有効にしますが、デフォルトのgzip_typesは保持され、デフォルトのtext/html mimetypeとは異なるリソースに対してVaryは有効になりません。 http://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip(nginx 1.4.6でテスト済み) –

+0

@AlanFranzoniこの質問は、gzipを有効にする、または他のコンテンツタイプをエンコードすることとは関係ありません。可変ヘッダーを追加する。 – jbg

+0

@jbg私はVaryの目的を誤解していると思います。これは圧縮で頻繁に使用されます(https://www.fastly.com/blog/best-practices-for-using-the-vary-headerを参照)。 gzipとvaryが一緒に何もしない場合、なぜnginxオプションはgzip_varyと呼ばれますか? –

24

、ファイルを保存し、nginxのを再起動

gzip on; 
    gzip_min_length 1100; 
    gzip_buffers 4 32k; 
    gzip_types text/plain application/x-javascript text/xml text/css; 
    gzip_vary on; 

を追加します。

+4

私が知る限り、これは唯一正しい答えです。デフォルトはtext/htmlなので、gzip_typesはここのキーです。したがって、さまざまなコンテンツタイプでは可変は有効になりません。 –

+1

私のnginxサーバーのvhostファイルでうまくいった。ありがとう! – jamescampbell

1

シンプルです。

vim /etc/nginx/nginx.conf 

セクションの下底部付近に以下を追加します:nginxのconfの中

## 
    # Gzip Settings 
    ## 

    gzip on; 
    gzip_disable "msie6"; 

    # gzip_vary on; 
    # gzip_proxied any; 
    # gzip_comp_level 6; 
    # gzip_buffers 16 8k; 
    # gzip_http_version 1.1; 
    # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; 

だけgzip_vary on;パラメータのコメントを解除し、nginxのサービスを再起動またはリロード:

service nginx restart 

これは修正する必要があります問題。旧バージョンのnginxを使用している場合は、gzip on;を有効にする必要があります。これは、可変ヘッダーが機能するために必要です。

こちらがお役に立てば幸いです。 FYI、これは、それぞれのサーバーブロックで上書きされない限り、すべてのサーバー/サイトのconfファイルに適用されます。 nginxの、ApacheとIISのためserver {}

出典先:https://www.maxcdn.com/blog/accept-encoding-its-vary-important/

+0

gzip_typesを無効にするとより多くの問題が発生します。 –

0

あなたは他の回答を試しても見ている場合は、以下のかもしれないが(あなたがGTMetrixを使用して、ページの速度をテストしている場合など)、オフに変更ヘルプ:

すべてのgzip_typeが/etc/nginx/nginx.confのhttpセクションにも設定されていることを確認してください。 * /の/ etc/nginxの/サイトで入手可能な

サーバブロックを使用すると、インクルードヘッダとgzip_typesを変更設定することができますが、あなたのサイトのセットアップを持っているかに応じて、あなたが彼らの前にファイルを処理して返すことができる1つの場所であります設定のそのビットに達する。

/etc/nginx/nginx.confには、httpセクションがあります。ここには、gzip_typesとgzip_varyもあります。

私にとっては、CSSとJSは静的なファイルで、(wordpress)nginx sites-availableファイル(私はそれの前にニスがあります)を打つ前にサービスされていました。

したがって、nginx.confのhttpセクションにgzip_typesの完全なリストを追加すると、私の問題が修正されました。