Get NGINX to serve .gz compressed asset files

徘徊边缘 提交于 2020-11-25 04:59:10

问题


Rails 3.1 has a convenient system which can compress files into .gz files. However, instead what I've done is I've moved all the asset files that are created with assets:precompile to a static webserver. This all works, but how can I get nginx to serve the .gz files normally?


回答1:


1) ensure you have Nginx > 1.2.x (to proper headers modifications) and compile with --with-http_gzip_static_module option

2) Enable this option gzip on (to serve back-end response with gzip header)

3) Setup assets location with gzip_static on (to serve all.css.gz, all.js.gz files directly)

4) Prevent of etag generation and last-modify calculation for assets

5) Turn on the right Cache-control to cache SSL served static assets, unless they will be expired once browser is closed

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

if you would like to get full Nginx configuration, you can see this gist on Github.

open_file_cache helps you to cache: open file descriptors, their sizes, modification times and directory lookups, which is helpful for high load on the file system.

UPDATE: If you are living on the edge, turn on the SPDY to boost the SSL connection.



来源:https://stackoverflow.com/questions/6952639/get-nginx-to-serve-gz-compressed-asset-files

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!