Caching mit Apache mod_proxyAutor: Dr. Volker Liebenberg, 22.05.2008
Bei komplexen Abfragen oder hohem Requestvolumen verbessert ein externes Caching das Antwortzeitverhalten des Servers.
Apache 1.3
<IfModule mod_proxy.c>
ProxyRequests Off
ProxyVia On
CacheRoot "/var/cache/httpd"
CacheSize 100000
CacheGcInterval 4
CacheMaxExpire 10
CacheLastModifiedFactor 0.1
CacheDefaultExpire 8
# NoCache domain1 domain2
</IfModule>
Die Konfiguration des VirtualHost erfolgt in der http.conf. Bei den mit confixx-Professional administrierten Systemen ist sie ausgelagert in die Datei confixx_vhost.conf. Die Pflege erfolgt über das confixx-Professional Webinterface. Sinnvollerweise wird für jeden Auftritt ein eigner Kunde angelegt, dem die Domain(s) zugeordnet werden. <VirtualHost 217.160.211.236:80> ServerName web4.p15135474.pureserver.info ServerAlias www.meinedomain.de.de roc-berlin.de DocumentRoot /home/www/web4/html User web4 Group ftponly ScriptAlias /cgi-bin/ /home/www/web4/html/cgi-bin/ php_admin_value open_basedir /home/www/web4/ php_admin_value upload_tmp_dir /home/www/web4/phptmp/ #RewriteEngine On #RewriteRule [s. ZMS Howto 'Apache rewrite'] </VirtualHost>
Hinweis: Der reboot des Apache erfolgt am besten mit: rcapache restart bzw. stop|start, da dann das bootscript mit allen Parametern verwendet wird.
Apache 2.0
# /etc/apache2/mods-enabled/proxy.conf #
<IfModule mod_proxy.c>
ProxyRequests Off
<Proxy *>
AddDefaultCharset off
Order deny,allow
Deny from all
ProxyFtpDirCharset UTF-8
</Proxy>
ProxyVia On
</IfModule>
# /etc/apache2/mods-enabled/disk_cache.conf # <IfModule mod_disk_cache.c> CacheRoot /var/cache/apache2/mod_disk_cache CacheDirLevels 5 CacheDirLength 3 </IfModule> # /etc/apache2/sites-enabled/httpd-mySite.conf # <Proxy *> Order allow,deny Allow from all </Proxy> <VirtualHost *> ServerName www.hermann-husen.de RewriteEngine On RewriteRule ... CacheEnable disk / CacheRoot /path-to-MySite/proxycache CacheDirLevels 2 CacheDirLength 1 CacheIgnoreNoLastMod On CacheDefaultExpire 3600 </VirtualHost>
ZMS-Templates
Die Modifikation von ZMS-Templates ist minimal. Es muss lediglich sichergestellt werden, dass die Seiten die für das Caching notwendigen Informationen im Header enthalten. Dies lässt sich durch Eintrag der folgenden DTML-Methoden erreichen: <dtml-if "REQUEST.get('preview','')=='preview' or (getObjProperty('attr_cacheable', REQUEST)==0)"
><dtml-call "RESPONSE.setHeader('Expires', '-1')"
><dtml-call "RESPONSE.setHeader('Cache-Control', 'no-cache')"
><dtml-call "RESPONSE.setHeader('Pragma', 'no-cache')"
><dtml-else><dtml-call "RESPONSE.setHeader('Expires', _.DateTime(_.DateTime().timeTime() + 86400).toZone('GMT').rfc822())"
><dtml-call "RESPONSE.setHeader('Last-Modified', bobobase_modification_time().toZone('GMT').rfc822())"
><dtml-call "RESPONSE.setHeader('If-Modified-Since', bobobase_modification_time().toZone('GMT').rfc822())"
><dtml-call "RESPONSE.setHeader('Cache-Control', 'proxy-revalidate')"
></dtml-if>
Hinweis: Über
Die Seiten außerhalb des Preview werden wie folgt ausgezeichnet:
Es wird empfohlen, ein Template "cache_config" anzulegen und es sowohl im Mastertemplate (standard_html_header) als auch im Stylesheet bzw. etwaigen Scripttemplates per "<dtml-var cache_config>" aufzurufen.
Virtual Host Monster
Sollen mehrere Domains innerhalb einer ZOPE-Instanz verwaltet werden, ist ein rewriting der Anfragen erforderlich. Innerhlb von ZOPE übernehmen das die Produkte SiteAccess oder Virtual Host Monster (VHM).
|
Home |
Sitemap |
Druckversion |
Seitenanfang |
Impressum |
pressinfo
© 2001-2008 Hoffmann+Liebenberg GmbH, SNTL Publishing GmbH & Co KG
|
ZMS is a partner project of medvalue.net