web-dev-qa-db-ja.com

NGINXを入手して.gz圧縮アセットファイルを提供する

Rails 3.1には、ファイルを.gzファイルに圧縮できる便利なシステムがあります。ただし、代わりに、assets:precompileで作成されたすべてのアセットファイルを静的Webサーバーに移動しました。これはすべて機能しますが、nginxで.gzファイルを正常に提供するにはどうすればよいですか?

30
matsko

1)Nginx> 1.2.x(適切なヘッダー変更)があることを確認し、-with-http_gzip_static_moduleオプションでコンパイルします

2)このオプションを有効にしますgzip on(gzipヘッダーでバックエンド応答を提供するため)

3)gzip_static onでアセットの場所を設定します(all.css.gz、all.js.gzファイルを直接)

4)etagの生成を防ぎ、資産の計算を最終的に変更します

5)ブラウザを閉じると有効期限が切れない限り、SSLで提供される静的アセットをキャッシュするために右側のキャッシュコントロールをオンにします

  location ~ ^/(assets|images|javascripts|stylesheets|swfs|system)/ {
      gzip_static on;
      expires     max;
      add_header  Cache-Control public;
      add_header  Last-Modified "";
      add_header  ETag "";
  }

完全なNginx構成を取得したい場合は、 Githubのこの要点 を参照してください。

open_file_cacheは、ファイル記述子、そのサイズ、変更時間、およびディレクトリルックアップをキャッシュするのに役立ちます。これは、ファイルシステムの高負荷に役立ちます。

UPDATE:Edgeに住んでいる場合は、SPDYをオンにしてSSL接続を強化します。

58
Anatoly