Автор Тема: Помощ за mod_deflate  (Прочетена 1522 пъти)

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Помощ за mod_deflate
« -: Jan 20, 2010, 16:57 »
Здравейте,

Имам работещ Apache с два виртуални хоста за сайтовете ми. Днес като си разцъквах из нета намарих тази добавка за Firefox - Page speed Тя ми каза една доста сериозна грешка нямам компресия на страницата, затова реших да си пусна такава посредством mod_deflate Прочетох документацията на този модул и тази страница след което в /etc/apache2/httpd.conf си добавих следните редове:
Цитат
<Location />
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary

BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

</Location>

Рестартирах апача и тествах резултата обаче Page speed-а ми казва :
Цитат
Compressing the following resources with gzip could reduce their transfer size by 135.9KiB (71% reduction).

    * Compressing http://sitename.com/static/jquery.js could save 38.1KiB (69% reduction).
    * Compressing http://sitename.com/static/jquery.form.js could save 23.5KiB (73% reduction).
    * Compressing http://sitename.com/static/jquery.dimensions.js could save 18.4KiB (78% reduction).
    * Compressing http://sitename.com/$external_c/ds/%25%2510/101/10196301%25%25interface.style.css?4b445b88575fa could save 14.4KiB (77% reduction).
    * Compressing http://sitename.com/static/interface.js could save 9.4KiB (72% reduction).
    * Compressing http://sitename.com/static/json2.js could save 6.3KiB (66% reduction).
    * Compressing http://sitename.com/static/form_handler.js could save 5.7KiB (68% reduction).
    * Compressing http://sitename.com/static/swfobject.js could save 4.5KiB (67% reduction).
    * Compressing http://sitename.com/components/IndexProfileList.cmp.js could save 3.4KiB (71% reduction).
    * Compressing http://sitename.com/components/IndexPhotoList.cmp.js could save 3.3KiB (71% reduction).
    * Compressing http://sitename.com/static/component_handler.js could save 2.6KiB (64% reduction).
    * Compressing http://sitename.com/$external_c/ds/%25%25DD/DDC/DDC58E77%25%25menu-tabs.style.css?4b44575211389 could save 1013B (69% reduction).
    * Compressing http://sitename.com/components/BlogIndexList.cmp.js could save 657B (65% reduction).
....
.....

А теста тук ми казва следното нещо:
Цитат
Web page compressed?   Yes
Compression type?   gzip
Size, Markup (bytes)   44,574
Size, Compressed (bytes)   7,734
Compression %   82.6
   
Response Headersstatus   HTTP/1.1 200 OK
date   Wed, 20 Jan 2010
14:23:32 GMT
server   Apache
x-powered-by   PHP/5.2.4-2ubuntu5.7
expires   Thu, 19 Nov 1981
08:52:00 GMT
cache-control   no-store, no-cache,
must-revalidate,
post-check=0,
pre-check=0
pragma   no-cache
set-cookie   PHPSESSID=6ef9c4b108
a1e86c377f341303d218
84; path=/
vary   Accept-Encoding
content-encoding   gzip
content-length   7734
connection   close
content-type   text/html;
charset=UTF-8

Въпроса ми е на кога да вярвам? Сега имам ли компресия или не?
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Помощ за mod_deflate
« Отговор #1 -: Jan 20, 2010, 17:47 »
А имаш ли следните редове в apache2.conf (httpd.conf) или в конфигурационния файл на mod_deflate, ако има отделен такъв
Цитат
AddOutputFilterByType DEFLATE text/html text/plain text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/javascript
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Re: Помощ за mod_deflate
« Отговор #2 -: Jan 20, 2010, 20:55 »
Не съм знаел че mod_deflate има конфигурация. Сега я намерих /etc/apache2/mods-enabled/deflate.conf като там сложих:
Цитат
<IfModule mod_deflate.c>
#          AddOutputFilterByType DEFLATE text/html text/plain text/xml
                AddOutputFilterByType DEFLATE text/plain
                AddOutputFilterByType DEFLATE text/html
                AddOutputFilterByType DEFLATE text/xml
                AddOutputFilterByType DEFLATE text/css
                AddOutputFilterByType DEFLATE application/xml
                AddOutputFilterByType DEFLATE application/xhtml+xml
                AddOutputFilterByType DEFLATE application/rss+xml
                AddOutputFilterByType DEFLATE application/javascript
                AddOutputFilterByType DEFLATE application/x-javascript

                DeflateCompressionLevel 9

#               SetOutputFilter DEFLATE
                SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
                SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
                SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
                SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
                SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
                SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
                SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
                SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary

                BrowserMatch ^Mozilla/4 gzip-only-text/html
                BrowserMatch ^Mozilla/4\.0[678] no-gzip
                BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

И съответно конфигурацията от първия ми пост я разкарах от httpd.conf. Обаче Page speed-а продължава да си разправя същите неща. А сайтове като този  и този казват:
Цитат
Original Size: 43.53 KB
Gzipped Size: 7.52 KB
Data Savings: 82.72%

Цитат
Scope of analysis:    Real-time data -- target file compression reports only (no supporting files).

Web server type:
   Apache
Compression status:    Compressed (gzip)
File Size Comparison (in bytes):
Original size:    44572 bytes
 
Compressed size:   7696 bytes
 
Savings in bytes:   36876 bytes
 
Percentage saved by compression:   83.0%
Transfer speed improvement:    5.7 X
Speed Comparison by Connection Type (in seconds):
 
Dial-up Modem
56.0 Kbps   6.218 s   
1.074 s   
 
 
ISDN
128.0 Kbps   2.72 s   
0.47 s   
 
 
DSL/Cable Modem
256.0 Kbps   1.36 s   
0.235 s   
 
 
DSL/Cable Modem
1.0 Mbps   0.34 s   
0.059 s   
 
 
T1
1.5 Mbps   0.227 s   
0.039 s
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Re: Помощ за mod_deflate
« Отговор #3 -: Jan 25, 2010, 14:30 »
Продължавам да го боря този mod_deflate, като днес установих следното нещо компресията работи но само на дефоут сайта ми а на виртуалния хост не иска. Интересно защо?
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

lod

  • Напреднали
  • *****
  • Публикации: 76
  • Distribution: (K)Ubuntu/FreeBSD
  • Window Manager: Gnome/KDE
  • LPIC-3, CCNP, MCT, MCSE, VW Golf Driver
    • Профил
Re: Помощ за mod_deflate
« Отговор #4 -: Jan 25, 2010, 17:48 »
мм, аз набухах всичко в default, default-ssl и се получи

DeflateFilterNote Input input_info
DeflateFilterNote Output output_info
DeflateFilterNote Ratio ratio_info
LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate
CustomLog /var/log/apache2/deflate_log deflate

tail -f /var/log/apache2/deflate_log
Активен

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Re: Помощ за mod_deflate
« Отговор #5 -: Jan 26, 2010, 10:16 »
Сложих ги тези неща за логването, но нищо не се пишеше в лога докато не сложих в конфигурацията на vhost-а това:
Цитат
       # Enable compression for this vhost
          Include  /etc/apache2/mods-enabled/deflate.conf
        #

Блъскайки къде може да е проблема, конфигурирах логването така:
Цитат
                DeflateFilterNote deflate_ratio
                LogFormat "%v %h %l %u %t \"%r\" %>s %b mod_deflate: %{deflate_ratio}n pct." vhost_with_deflate_info
                CustomLog /var/log/apache2/deflate_log vhost_with_deflate_info

Гледам лога дава че компресира нещата, но въпреки всичко page speed-а продължава да ми разправя следното:
Цитат
Compressing the following resources with gzip could reduce their transfer size by 38.1KiB (69% reduction).

    * Compressing http://sitename.com/static/jquery.js could save 38.1KiB (69% reduction).

Давам  grep jquery.js /var/log/apache2/deflate_log и в лога виждам:
Цитат
sitename.com 195.138.149.52 - - [26/Jan/2010:09:34:18 +0200] "GET /static/jquery.js HTTP/1.1" 304 - mod_deflate: - pct.

Проверих тук и видях, че този код означавал "Не е променяно". Изтрих кеша на Лисицата. Тествам отново при което лога ми казва:
Цитат
sitename.com 195.138.149.52 - - [26/Jan/2010:09:34:35 +0200] "GET /static/jquery.js HTTP/1.1" 200 16710 mod_deflate: 29 pct.

Натискам рефреш на страницата и в лога получавам отново код 304. Според мен компресията работи, но лисицата има някакъв кеш от който взема не компресиран този javascript и затова page speed-а реве. Като тествах с други браузъри като ie и opera според лога компресията работи.

Дали са ми правилни разсъжденията?
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

niakoi

  • Напреднали
  • *****
  • Публикации: 49
    • Профил
Re: Помощ за mod_deflate
« Отговор #6 -: Jan 26, 2010, 10:53 »
Привет,
според мен ти работи правилно, все пак аз проверявам с firebug req/resp. - там си пише и каква компресия е ползвана, а и други интересни неща

п.с. отдавна не съм писъл тук, надявам се да съм помогнал

поздрави
нас
Активен

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Re: Помощ за mod_deflate
« Отговор #7 -: Jan 26, 2010, 11:11 »
Благодаря за съвета компресията си работи. А специално за static/jquery.js ми пише (cache). За всички файлове ми пише сумарно File Size:598.3kB, Transfer Size: 412.7kB което ако са ми верни сметките са си около 31% по-малко, следователно работи. Един въпрос относно конфигурацията на модула дали не е по-добре да я направя така:
Цитат
<IfModule mod_deflate.c>
#          AddOutputFilterByType DEFLATE text/html text/plain text/xml
                AddOutputFilterByType DEFLATE text/plain
                AddOutputFilterByType DEFLATE text/html
                AddOutputFilterByType DEFLATE text/xml
                AddOutputFilterByType DEFLATE text/css
                AddOutputFilterByType DEFLATE application/xml
                AddOutputFilterByType DEFLATE application/xhtml+xml
                AddOutputFilterByType DEFLATE application/rss+xml
                AddOutputFilterByType DEFLATE application/javascript
                AddOutputFilterByType DEFLATE application/x-javascript

                DeflateCompressionLevel 9
  BrowserMatch ^Mozilla/4 gzip-only-text/html
                BrowserMatch ^Mozilla/4\.0[678] no-gzip
                BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

Така би трябвало да ми компресира само посочените неща нали?

Добавено:
Още един въпрос се сетих има ли смисъл за пускам Zlib компресия в php-то? Като добавя в php.ini:
Цитат
output_buffering = Off
output_handler =
zlib.output_compression = On
Или тази компресия се ползва за други неща, тъй като не ми стана много ясно.
« Последна редакция: Jan 26, 2010, 14:56 от abadon »
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос