Настройка nginx на отдачу файлов сжатых в gzip

programmer_2006

Новичок
Настройка nginx на отдачу файлов сжатых в gzip

Когда у меня был только apache я css and js файлы сжимал архиватором. Получался файл вида lalala.js.gz в
htaccess были такие строчки

PHP:
#AddEncoding gzip .gz     
#<FilesMatch "\.js.gz$">  
#  ForceType text/javascript    
#  Header set Content-Encoding: gzip  
#</FilesMatch>  #<FilesMatch "\.js$">  
#  RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"  
#  RewriteCond %{HTTP:Accept-Encoding} gzip  
#  RewriteCond %{REQUEST_FILENAME}.gz -f  
#  RewriteRule (.*)\.js$ $1\.js.gz [L]  
#  ForceType text/javascript  #</FilesMatch>     
#<FilesMatch "\.css.gz$">  
#  ForceType text/css  
#  Header set Content-Encoding: gzip  
#</FilesMatch>  #<FilesMatch "\.css$">  
#  RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"  
#  RewriteCond %{HTTP:Accept-Encoding} gzip  
#  RewriteCond %{REQUEST_FILENAME}.gz -f  
#  RewriteRule (.*)\.css$ $1\.css.gz [L]  
#  ForceType text/css  
#</FilesMatch>
Теперь поставил nginx и теперь с этими файлами трабла. Добавлял тип в файл mine.types
Еще мудрил, но проблему не решил.
Может кто объяснит в чем трабла? Может я не то, что то делаю, но раньше работало.
Заранее спасибо.
 

MiksIr

miksir@home:~$
1. http://sysoev.ru/nginx/docs/http/ngx_http_gzip_module.html
Учтите, только, что по-умолчанию сжимает только text/html, так что нужно что-то вроде
gzip_types text/plain text/css text/xml application/x-javascript;

2. http://sysoev.ru/nginx/docs/http/ngx_http_gzip_static_module.html
При больших нагрузках и редко изменяемом контенте можно заранее подготовить сжатые версии на диске.
 

programmer_2006

Новичок
Автор оригинала: MiksIr
1. http://sysoev.ru/nginx/docs/http/ngx_http_gzip_module.html
Учтите, только, что по-умолчанию сжимает только text/html, так что нужно что-то вроде
gzip_types text/plain text/css text/xml application/x-javascript;

2. http://sysoev.ru/nginx/docs/http/ngx_http_gzip_static_module.html
При больших нагрузках и редко изменяемом контенте можно заранее подготовить сжатые версии на диске.
Со вторым как раз и проблема. Все включил, автоматом файлы сжимаются и отдаются. Но если пытаюсь подсунуть уже сжатый файл, то файл уже не распаковывается. Как я понял это из-за того, что nginx его еще раз сжимает. Хотелось бы добавить куда то условия "если файл уже сжат или имеет расширение gz" то его не трогать.
 

MiksIr

miksir@home:~$
При включенных модулях
gzip on;
gzip_static on;
если запрошен файл /var/www/file.bin и клиент поддерживает сжатие, то проверяется наличие файла /var/www/file.bin.gz. Если он есть - он и отдается, если его нет - отдается /var/www/file.bin
Но еще раз - запрос должен приходить на /url/file.bin (а не на file.bin.gz).
> Хотелось бы добавить куда то условия "если файл уже сжат или имеет расширение gz"
Ну у gz файлов какой content-type выдается? Если его в mime.types нет, то дефолтный, а если дефолтный text/html поставили, то будет второй раз жать. Т.е. нужно mime проставить для gz.
 
Сверху