Nginx+Drupal css_gzip

Главные вкладки

Аватар пользователя dvorak dvorak 10 июня 2011 в 13:14

Пытаюсь активировать gzip сжатие на сайте.
Установил модули: [module=css_gzip] и [module=javascript_aggregator]

Выполнил все требования, вплоть до редактирования .htaccess добавив

### START JS GZIP ###

AddEncoding x-gzip .gz
ForceType text/javascript

RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)\.js $1.js.gz [L,QSA]
### End JS GZIP ###

и

### START CSS GZIP ###
# Requires mod_mime to be enabled.

# Send any files ending in .gz with x-gzip encoding in the header.
AddEncoding gzip .gz

# Gzip compressed css files are of the type 'text/css'.

ForceType text/css

RewriteEngine on
# Serve gzip compressed css files
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.css $1\.css\.gz [L,QSA,T=text/css]

### End CSS GZIP ###

Но сжатие все равно не работает.

Задал вопрос своему хостеру, и получил вот такой ответ:

«На наших серверах работает связка nginx+apache. Через nginx отдаются статические файлы с расширениями: jpg,jpeg,gif,png,css,zip,tgz,gz,rar,bz2,doc,xls,exe,pdf,ppt,txt,tar,mid,midi,wav,bmp,rtf,js,swf,f4v,flv,avi,wmv,mp3,mp4
Это значит файлы не обрабатываются через apache и если есть какие-то директивы в файле .htaccess, то они тоже не подействуют, чтобы apache мог обработать данные файлы нужно давать ссылки на несуществующие файлы, в этом случае, запрос будет передаваться web серверу apache, соответсвенно можно будет использовать директивы .htaccess для обработки этих запросов.»

Долго пытался найти соответствующую информацию в web, google, на drupal.ru, на drupal.org
но ничего не подходит.

Я в этой теме "мягко" говоря только на чал разбираться, но я никогда не имел дело с такими "тонкими" настройками.

Прошу у вас помощи.
Что-то мне кажется, что все очень просто....
Спасибо!

Комментарии

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 10 июня 2011 в 13:27

"dvorak" wrote:

Что-то мне кажется, что все очень просто....

"dvorak" wrote:
«На наших серверах работает связка nginx+apache. Через nginx отдаются статические файлы с расширениями: jpg,jpeg,gif,png,css,zip,tgz,gz,rar,bz2,doc,xls,exe,pdf,ppt,txt,tar,mid,midi,wav,bmp,rtf,js,swf,f4v,flv,avi,wmv,mp3,mp4
Это значит файлы не обрабатываются через apache и если есть какие-то директивы в файле .htaccess, то они тоже не подействуют, чтобы apache мог обработать данные файлы нужно давать ссылки на несуществующие файлы, в этом случае, запрос будет передаваться web серверу apache, соответсвенно можно будет использовать директивы .htaccess для обработки этих запросов.»

вот и весь ответ

Аватар пользователя dvorak dvorak 10 июня 2011 в 13:34

Да я в курсе, возможно, я плохо сформулировал вопрос.

Как мне реализовать это: "чтобы apache мог обработать данные файлы нужно давать ссылки на несуществующие файлы"?

Аватар пользователя makkon makkon 1 января 2012 в 1:13

наверно поздно будет, но может кому пригодится.
возился долго и уже было хотел махнуть рукой, но ответ нашел.
Drupal + nginx + RU-CENTER (nic.ru) + css gzip + js aggregator, тариф 201 (хз чо там на 301-м): нужно было чтобы сжатие работало на все кроме картинок и иже подобных и осуществлялось через nginx, а сжатые модулями друпала и собранные в один файл стили и скрипты отдавались именно сжатыми (вода водой). Но nginx не хотел отдавать css&js сжатыми. пришлось в конфиге править ручками - не использовать nginx для css js. Для этого:
переводим в ручной режим сайт (!!!не хостинг!!!)
далее в папке своего юзера находим nginx.conf.manual и рядом site_name.vhost.conf, вот в последнем найти строчку вида
location ~* ^.+\.(jpg|jpeg|gif|png|ico|mp3|<strong>css</strong>|<strong>js</strong>........
и убрать сами понимаете что.
там же можно поставить и время хранения expires 7d; - на вкус

в результате можно получить быстрый и с оценкой под 100 (page speed) сайт на друпале