Apache Webserver komprimiert Webinhalte nicht

odigo

Member of Honour
Hallo,

ich versuche gerade einem Apache Webserver (Version 2.2.22 auf Fedora16) beizubringen daß er im Proxymodus den von ihm weitergeleiteten Webinhalt mit mod_deflate kompromiert. Er will aber beim besten Willen nicht.

Hier mal den VirtualHost den ich angelegt habe:
Code:
<VirtualHost *:8080>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /www/docs/dummy-host.example.com
    ServerName test.localhost.com
    ProxyStatus Full
    
    <Proxy balancer://testproxy/>
                BalancerMember http://1.2.3.4:8080 loadfactor=1 keepalive=On
    </Proxy>

    <Location />
                ProxyPass balancer://testproxy/ stickysession=jssesionid|JSESSIONID nofailover=On lbmethod=byrequests
                ProxyPassReverse balancer://testproxy/
                Order Deny,Allow
                Allow from all
                RequestHeader unset Accept-Encoding
                # 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
                                
                  # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
                  # the above regex won't work. You can use the following
                  # workaround to get the desired effect:
                  BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
                                
                  # Don't compress images
                  SetEnvIfNoCase Request_URI \
                  \.(?:gif|jpe?g|png)$ no-gzip dont-vary
                                
                  # Make sure proxies don't deliver the wrong content
                  Header append Vary User-Agent env=!dont-vary
    </Location>
    
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
Die Sache mit dem Deflate hab ich quasi von hier kopiert: mod_deflate - Apache HTTP Server

Der Proxy selbst funktioniert wunderbar. Es wird nur nix gedeflated (überpüft mit Wireshark). Browser: Firefox 11.0

Hier noch die Module die geladen werden, mod_deflate ist auch mit dabei und liegt auch im Filesystem an der richtigen Stelle:

Code:
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule dbd_module modules/mod_dbd.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule substitute_module modules/mod_substitute.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so
Jemand eine Idee?

Ich weiß schon warum ich Softwareentwickler geworden bin und nicht Serverbändiger :rolleyes:
 

bitmuncher

Senior-Nerd
Mach mal das Logging an

Code:
  DeflateFilterNote Input instream
  DeflateFilterNote Output outstream
  DeflateFilterNote Ratio ratio
  LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
  CustomLog /var/log/apache2/deflate.log deflate

(Pfad nach Bedarf anpassen) und schau, ob dir wirklich 0 Komprimierung ausgegeben wird, oder evtl. sogar Warnungen auftauchen. Mit welchem User-Agent fragt denn dein Browser an?
 

odigo

Member of Honour
Code:
"GET / HTTP/1.1" -/- (-%)
"GET /favicon.ico HTTP/1.1" -/- (-%)
"GET / HTTP/1.1" -/- (-%)
"GET /favicon.ico HTTP/1.1" -/- (-%)
"GET / HTTP/1.1" -/- (-%)
"GET /favicon.ico HTTP/1.1" -/- (-%)
"GET / HTTP/1.1" -/- (-%)
"GET /images/logo.gif HTTP/1.1" -/- (-%)
"GET /css/jboss.css HTTP/1.1" -/- (-%)
"GET /favicon.ico HTTP/1.1" -/- (-%)

Hm, schaut nicht gut aus. In den anderen Logfiles unter /var/log/httpd/logs kann ich übrigens auch nichts verdächtiges finden.

User-Agent: Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0

PS: Ich hatte es auch schon mal einfach nur mit
Code:
AddOutputFilterByType DEFLATE text/html text/xml text/css text/javascript application/x-javascript application/javascript
probiert. Gleiches Ergebnis.
 
Zuletzt bearbeitet:

odigo

Member of Honour
Nachtrag:
Ich hab mal die ganze Proxygeschichte ausgebaut (ich dachte daran liegts vielleicht) und es mit einem ordinären DocumentRoot mit einer index.html (Hello World) probiert.

Code:
"GET /index.html HTTP/1.1" -/- (-%)

X(

Hab auch mal DeflateCompressionLevel 9 gesetzt. Wieder kein Erfolg.
 
Zuletzt bearbeitet:

odigo

Member of Honour
Ich glaub ich habs geschafft. Das Problem war wohl:

Code:
RequestHeader unset Accept-Encoding

Das muss auskommentiert/gelöscht werden. Was bei genauerer Betrachtung eigentlich auch ganz logisch klingt. Wieso sollte der Webserver auch zippen wenn ihm die Information daß der Client das auch versteht fehlt.
 
Oben