Страница 1 из 1
Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-20 8:21:12
ved00n
Исходные данные:
FreeBSD 7.2-RELEASE
Apache 2.2.11
Задача: поставить mod_gzip2 для сжатия отдаваемых апачем страниц.
Вначале хотел поставить mod_gzip, но он, как я понял, предназначен только для работы с Apache 1.x, поэтому стал инсталировать mod_gzip2. Устанавливал стандартно, из портов:
Код: Выделить всё
cd /usr/ports/www/mod_gzip2
make install clean
Поставилось без ошибок. В httpd.conf появилась закоментированная строчка:
Код: Выделить всё
LoadModule gzip2_module libexec/apache22/mod_gzip2.so
Раскоментировал эту строчку и попробовал рестартовать апач, но в ответ появляется сообщение:
Код: Выделить всё
httpd: Syntax error on line 114 of /usr/local/etc/apache22/httpd.conf: Can't locate API module structure `gzip2_module' in file /usr/local/libexec/apache22/mod_gzip2.so: Undefined symbol "gzip2_module"
Поискал документацию по mod_gzip2, но ничего толкового не обнаружил, поэтому решил спросить совета здесь.
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-20 8:48:14
zg
ved00n писал(а):LoadModule gzip2_module
гм.. это баг разрабов, надо циферку 2 убрать
Код: Выделить всё
LoadModule gzip_module libexec/apache22/mod_gzip2.so
тогда всё заработает
Код: Выделить всё
zg# apachectl -M
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
authn_file_module (shared)
authn_dbm_module (shared)
authn_anon_module (shared)
authn_default_module (shared)
authn_alias_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_user_module (shared)
authz_dbm_module (shared)
authz_owner_module (shared)
authz_default_module (shared)
auth_basic_module (shared)
auth_digest_module (shared)
file_cache_module (shared)
cache_module (shared)
disk_cache_module (shared)
dumpio_module (shared)
include_module (shared)
filter_module (shared)
charset_lite_module (shared)
deflate_module (shared)
log_config_module (shared)
logio_module (shared)
env_module (shared)
mime_magic_module (shared)
cern_meta_module (shared)
expires_module (shared)
headers_module (shared)
usertrack_module (shared)
unique_id_module (shared)
setenvif_module (shared)
version_module (shared)
ssl_module (shared)
mime_module (shared)
dav_module (shared)
status_module (shared)
autoindex_module (shared)
asis_module (shared)
info_module (shared)
cgi_module (shared)
dav_fs_module (shared)
vhost_alias_module (shared)
negotiation_module (shared)
dir_module (shared)
imagemap_module (shared)
actions_module (shared)
speling_module (shared)
userdir_module (shared)
alias_module (shared)
rewrite_module (shared)
geoip_module (shared)
php5_module (shared)
gzip_module (shared)
Syntax OK
zg#
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-20 9:12:19
ved00n
Действительно, убрав "2" всё запустилось. Спасибо!
Теперь такой вопрос - сама загрузка модуля уже дает сжатие страниц? Или нужно еще прописать <IfModule mod_gzip.c>?
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-20 9:24:19
zg
ved00n писал(а):сама загрузка модуля уже дает сжатие страниц?
нет, сжатие надо включать ручками через конфиг
ved00n писал(а):Или нужно еще прописать <IfModule mod_gzip.c>?
ну можно и так, если верить устаревшему файлу /usr/local/share/examples/mod_gzip2/mod_gzip2.conf.sample , то примерно так
Код: Выделить всё
LogFormat "%h %l %u %t \"%r\" %>s %b mod_gzip: %{mod_gzip_compression_ratio}npct." common_with_mod_gzip_info1
LogFormat "%h %l %u %t \"%r\" %>s %b mod_gzip: %{mod_gzip_result}n In:%{mod_gzip_input_size}n Out:%{mod_gzip_output_size}n:%{mod_gzip_compression_ratio}npct." common_with_mod_gzip_info2
LogFormat "%{mod_gzip_compression_ratio}npct." mod_gzip_info1
LogFormat "%{mod_gzip_result}n In:%{mod_gzip_input_size}n Out:%{mod_gzip_output_size}n:%{mod_gzip_compression_ratio}npct." mod_gzip_info2
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file \.htm$
mod_gzip_item_include mime text/.*
mod_gzip_item_exclude file error/.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_temp_dir "/tmp"
mod_gzip_command_version mod_gzip_version
CustomLog logs/gzip.log mod_gzip_info2
</IfModule>
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-20 9:51:34
zg
гм... чё-то не получилося у меня включить сжатие на лету... причём уже второй раз. Есть подозрение, что во втором апаче это по другому делается. Есть какие-нить мысли?
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-20 9:55:34
zg
угу, мод_гзип больше нафиг не нужен

потому что есть
http://httpd.apache.org/docs/2.2/mod/mo ... tml#enable
ща попробую врубить и отпишусь

тема для меня актуальная и интересная
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-20 10:13:50
ved00n
Если я правильно понял, то mod_deflate устанавливать из портов не нужно, он вроде как уже включен в Apache?
Я поставил директиву SetOutputFilter DEFLATE в конфигурационный файл виртуального хоста. Апач рестартанул без ошибок. Если я правильно понимаю, то сжатие уже должно включится? Если да, то как это проверить?
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-20 10:16:38
zg
Код: Выделить всё
zg# wget -S --spider http://localhost/1.txt -o /dev/stdout | grep -i content
Content-Length: 118548
Content-Type: text/plain
zg# wget -S --spider http://localhost/1.txt --header "Accept-Encoding: gzip,deflate" -o /dev/stdout | grep -i content
Content-Encoding: gzip
Content-Length: 3438
Content-Type: text/plain
zg#

ппц как всё просто и легко
Код: Выделить всё
zg# cat /usr/local/etc/apache22/Includes/gzip-output.conf
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
zg#
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-20 11:21:28
ved00n
Попробовал провести такой же тест, но почему-то размер показался только в первом случае. Не пойму работает сжатие или нет?
Код: Выделить всё
wget -S --spider http://localhost/1.txt -o /dev/stdout | grep -i content
Content-Length: 150023
Content-Type: text/plain
wget -S --spider http://localhost/1.txt --header "Accept-Encoding: gzip,deflate" -o /dev/stdout | grep -i content
Content-Encoding: gzip
Content-Type: text/plain
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-20 16:30:02
zg
ved00n писал(а):Не пойму работает сжатие или нет?
дык сохрани и посмотри чего пришло -)))
Код: Выделить всё
zg# wget http://localhost/1.txt --header "Accept-Encoding: gzip,deflate" -O 1.gz
--2009-06-20 19:31:19-- http://localhost/1.txt
Распознаётся localhost... 127.0.0.1, ::1
Устанавливается соединение с localhost|127.0.0.1|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 3438 (3,4K) [text/plain]
Сохраняется в каталог: `1.gz'.
100%[======================================>] 3 438 --.-K/s в 0s
2009-06-20 19:31:19 (105 MB/s) - `1.gz' сохранён [3438/3438]
zg# zcat 1.gz | wc -c
118548
zg# ls -lah 1.gz
-rw-r--r-- 1 root wheel 3,4K 20 июн 12:42 1.gz
zg#
у меня пашет

Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-20 17:06:12
ved00n
Всё пашет. Спасибо за разъяснения.

Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-21 1:07:11
Гость
кстате, а зачем вы ставите вместо mod_deflate? чем mod_deflate не устроил?
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-21 6:04:21
ved00n
Гость писал(а):кстате, а зачем вы ставите вместо mod_deflate? чем mod_deflate не устроил?
До того как я открыл эту тему, о mod_deflate я не знал. Прочитал недавно, что mod_gzip способен уменьшить трафик вот и решил воспользоваться этим, уже здесь по ходу решения вопроса узнал о возможностях mod_deflate.
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-21 6:19:46
zg
Гость писал(а):кстате, а зачем вы ставите вместо mod_deflate? чем mod_deflate не устроил?
дак кабы знать сразу, что и где, так и форумов бы не понадобилось

Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-21 17:15:31
Alex Keda
мод дефлате не всё умеет что умеет гзип...
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2009-06-21 21:52:17
zg
lissyara писал(а):мод дефлате не всё умеет что умеет гзип...
я пробовал настроить мод_гзип на первом апаче и скажу честно, мод_дефлейт больше понравился. И судя по тому, в каком безобразном состоянии находится мод_гзип на данный момент, он нафиг никому не нужен. Если бы мод_дефлейт не справлялся с поставленной задачей, то, думаю, мод_гзип был бы ещё востребован. Но он не востребован, значит мод_дефлейт прекрасно выполняет свои функции.
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2010-12-23 13:40:56
risk94
Чет не пойму, вроде как пашет, а вро де как и не пашет. Как реально убедится ?? через вгет всякие проверяю - вроде норм. Как проверить броузеры?
конфига с офсайта:
Код: Выделить всё
# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png|mp3|avi|flv|swf)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2010-12-23 14:39:11
risk94
Re: Apache22+mod_gzip2 помогите разобраться в проблеме
Добавлено: 2010-12-24 1:08:13
risk94
Дополнительные параметры конфигураций, повлеяющие на скорость работы
Код: Выделить всё
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 3600 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType image/bmp "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
ExpiresByType text/html "access plus 3600 seconds"
ExpiresByType application/xhtml+xml "access plus 3600 seconds"
</IfModule>
<IfModule mod_headers.c>
<FilesMatch "\.(ico|jpe?g|png|gif|bmp|flv|mp3|avi|swf)$">
<------>Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
<FilesMatch "\.(css)$">
<------>Header set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\.(js)$">
<------>Header set Cache-Control "max-age=216000, private"
</FilesMatch>
<FilesMatch "\.(x?html?|php)$">
<------>Header set Cache-Control "max-age=3600, private, must-revalidate"
</FilesMatch>
</IfModule>