Portál AbcLinuxu, 26. dubna 2024 19:41


Dotaz: apache mod_deflate ignoruje content-type

19.3.2015 14:37 majales | skóre: 29 | blog: Majales
apache mod_deflate ignoruje content-type
Přečteno: 167×
Odpovědět | Admin
Zdravím Mám menší problém s konfigurací mod_deflate na centos 6. Na apache 2.2.15 mod_deflate vesele ignoruje nastavení AddOutputFilterByType a komprimuje i obrázky png. URL je složená a query string docela dlouhá. Mám nastaveny vyjímky na soubory které se nekomprimují podle tohoto:
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar|7z)$ no-gzip dont-vary
přičemž filtry AddOutputFilterByType vypadají takto:
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/x-js text/javascript text/css 
AddOutputFilterByType DEFLATE application/xml application/xhtml+xml application/x-javascript application/javascript
AddOutputFilterByType DEFLATE application/json
SetEnvIfNoCase ignoruje query string což je popsáno i v dokumentaci. To by ale nemělo vadit protože dle Firebugu je Content-type toho obrázku správně nastavený na "image/png"

URL pak vypadá takto:
https://servername/proxy/proxy2?http://vnitřní-server/servlet/sss/export?parameterx=10&valuey=230&f=image
konfigurace apache s mod_deflate je na reverzní proxy.

Tak nevíte co by mohlo být špatně nastaveno a proč mod_deflate komprimuje i obrázky ač to nemá dělat?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.3.2015 11:41 majales | skóre: 29 | blog: Majales
Rozbalit Rozbalit vše Re: apache mod_deflate ignoruje content-type
Odpovědět | | Sbalit | Link | Blokovat | Admin
Odpovím si sám. Chyba nastavení byla takové, že jsem napsal konfigurák pro mod_deflate podle několika zdrojů z webu a i podle manuálu od apache. Z manuálu to není zcela zjevné ale mod_deflate se dá nastavit v podstatě dvěmi způsoby:
  1. EXCLUDE-ALL s vyjímkami
  2. INCLUDE-ALL s vyjímkami

K první možnosti stačí přidat filtry a případně stupeň komprese a třeba i vyjímky pro straré prohlížeče takto:
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
A to stačí.

Mě tam bohužel někde v konfiguraci zůstalo toto:
SetOutputFilter DEFLATE
což se váže k té druhé variantě a potom se musí dělat vyjímky pomocí
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar|7z)$ no-gzip dont-vary
Takže jsem to kombinoval a neuvědomil jsi že stačí jen přidané filtry AddOutputFilterByType DEFLATE.

Takže tak.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.