Получите NGINX для обслуживания сжатых файлов активов .gz - PullRequest
29 голосов
/ 05 августа 2011

Rails 3.1 имеет удобную систему, которая может сжимать файлы в файлы .gz. Однако вместо этого я переместил все файлы ресурсов, созданные с помощью ресурсов: прекомпиляцию на статический веб-сервер. Это все работает, но как мне заставить nginx нормально обслуживать файлы .gz?

1 Ответ

58 голосов
/ 05 августа 2011

1) убедитесь, что у вас Nginx> 1.2.x (для правильной модификации заголовков) и скомпилируйте с - with-http_gzip_static_module option

2) Включите эту опцию gzip на (для обслуживания внутреннего ответа с заголовком gzip)

3) Настройте расположение ресурсов с помощью gzip_static на (для непосредственного обслуживания all.css.gz, all.js.gz файлов)

4) Предотвращение генерации etag и расчета последней модификации для активов

5) Включите правый Cache-control для кэширования статических активов, обслуживаемых 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 помогает вам кэшировать: открывать файловые дескрипторы, их размеры, время модификации и поиск в каталогах, что полезно для высокой нагрузки на файловую систему.

ОБНОВЛЕНИЕ: Если вы живете на грани, включите SPDY для усиления соединения SSL.

...