LINUX.ORG.RU
ФорумAdmin

Nginx gzip static


0

1

Сегодня узнал о замечательном модуле nginx-а, позволяющем не только на лету жать gzip-ом отдаваемый контент, но так же и отправлять заранее пожатую статику. Все бы хорошо, только мне приходится вручную создавать .gz файлы, нельзя ли настроить nginx таким образом, чтобы в случае отсутствия .gz файла он создавался и сохранялся на диске без моего участия?

Т.е. к примеру есть у меня огромный статический файл styles.css, но я его к сожалению не пожал руками и не сделал styles.css.gz, не мог бы nginx сам пожать файл и создать требуемый styles.css.gz без моего участия?

nginx не создает файлов, он сжимает на лету,
если сервер не дико загружен и не совсем-совсем дохлый,
то сжатие gzip процессор грузит не сильно

добавьте в nginx.conf

gzip on;
gzip_min_length 1024;
gzip_buffers 16 8k;
gzip_comp_level 6;
gzip_http_version 1.1;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javasc
ript;

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

я понимаю что nginx сжимает на лету, вопрос в другом: у меня есть статика, зачем сжимать ее по 10 раз, хочется 1 раз сжать и все как настроить обычно сжатие - я знаю, но все равно, спасибо Sylvia!

Goganchic ★★
() автор топика
Ответ на: комментарий от Goganchic

тогда сами сжимайте то что нужно
и директиву gzip_static = on;
включите.

а сам сервер , и уж тем более нжинкс никогда не будет создавать файлы в обслуживаемом им documentroot

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

а еще один вопрос в тему: а nginx сам не кэширует пожатый статический контент? Какие-нибудь css-ки, которые никогда не меняются? Я что-то никак не могу найти этого в документации.

Goganchic ★★
() автор топика
Ответ на: комментарий от Goganchic

нет, вроде он этого делать не умеет.

поставьте сжатие не 9, а скажем 6
gzip вполне считается realtime компрессией, если у вас совсем не дохлая впс с дикими ограничениями на процессор, а файлы в несколько мб можно сжать и вручную.

Sylvia ★★★★★
()

>нельзя ли настроить nginx таким образом, чтобы в случае отсутствия .gz файла он создавался и сохранялся на диске без моего участия?

В lighttpd есть опция сохранения .gz-кеша в заданном месте. Т.е. упаковка один раз, потом отдача из кеша (с проверкой не обновлялся ли исходный файл) и всё автоматом.

Есть ли такое в nginx - не знаю, я сжимаемую статику сейчас почти не отдаю, так что всё жму на лету.

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

>на авиабазе и балансере нжыныкс?

Там все три :) В разных доменах - разные.

а еще чо я заметил


Сайт, можно сказать, уже лет 6, как совсем заброшен. Только форумы активны.

KRoN73 ★★★★★
()
Ответ на: комментарий от Goganchic

а nginx сам не кэширует пожатый статический контент?

а куда он их будет кэшировать? На диск? :). Если в память то ОС сама это сделает, гугли в сторону linux page cache

true_admin ★★★★★
()
for i in `find /path/to/htdocs -name '*.css'`; do
	if test $i.gz -ot $i; then
		gzip -9c $i >$i.gz && touch -r $i $i.gz
	fi
done

можно добавить в крон ;)

arsi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.