Apache Webserver komprimiert Webinhalte nicht

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:
 
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?
 
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:
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:
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.
 
Zurück
Oben