<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gerds Blog &#187; Apache</title>
	<atom:link href="http://blog.it4sport.de/category/software/opensource/apache-opensource-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.it4sport.de</link>
	<description>Noch so ein Blog ...</description>
	<lastBuildDate>Mon, 28 Nov 2011 17:25:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Mal wieder Apache Paranoia</title>
		<link>http://blog.it4sport.de/2010/01/25/mal-wieder-apache-paranoia/</link>
		<comments>http://blog.it4sport.de/2010/01/25/mal-wieder-apache-paranoia/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 10:36:35 +0000</pubDate>
		<dc:creator>Gerd</dc:creator>
				<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://blog.it4sport.de/?p=1425</guid>
		<description><![CDATA[Um nichts nach auÃŸen dringen zu lassen sollte man die folgende Direktiven in seine Apache Konfig einbauen: TraceEnable Off FileETag None TraceEnable kann man auf einem Livesystem ausschalten, denn dort fÃ¼hrt man sowieso kein Debuggen oder Ã¤hnliches aus. FileETag abschalten fÃ¼hrt zwar zu etwas mehr Last, aber bevor man sich mit dem Aufwand dafÃ¼r herum [...]]]></description>
			<content:encoded><![CDATA[<p>Um nichts nach auÃŸen dringen zu lassen sollte man die folgende Direktiven in seine Apache Konfig einbauen:</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">TraceEnable Off
FileETag None</pre></div></div>

<p>TraceEnable kann man auf einem Livesystem ausschalten, denn dort fÃ¼hrt man sowieso kein Debuggen oder Ã¤hnliches aus. FileETag abschalten fÃ¼hrt zwar zu etwas mehr Last, aber bevor man sich mit dem Aufwand dafÃ¼r herum schlÃ¤gt oder mehr Server hinter einem Loadbalancer im Einsatz hat, lohnt es sich die Direktive zu deaktivieren. Das sagt sogar <a href="http://developer.yahoo.net/blog/archives/2007/07/high_performanc_11.html">Yahoo</a>. </p>
 <span class="post2pdf_span" style="border: 0px solid gray; width: 160px; text-align: left; "><a href="http://blog.it4sport.de/wp-content/plugins/post2pdf/generate.php?post=‘" rel="nofollow"><img src="http://blog.it4sport.de/wp-content/plugins/post2pdf/icon/pdf.png" width="16px" height="16px" /> Artikel als PDF exportieren. </a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.it4sport.de/2010/01/25/mal-wieder-apache-paranoia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prevent Dos Attacks</title>
		<link>http://blog.it4sport.de/2009/07/29/prevent-dos-attacks/</link>
		<comments>http://blog.it4sport.de/2009/07/29/prevent-dos-attacks/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 21:33:04 +0000</pubDate>
		<dc:creator>Gerd</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[HAProxy]]></category>
		<category><![CDATA[mod_qos]]></category>
		<category><![CDATA[Slowloris]]></category>

		<guid isPermaLink="false">http://blog.it4sport.de/?p=1247</guid>
		<description><![CDATA[Auf der HAProxy News Seite habe ich eben den kurzen Artikel &#8220;HAProxy to counter DoS attacks&#8221; gelesen. Willy Tarreau schreibt dort warum HAProxy gegen Slowloris hilft. Sehr lesenswert! Ein Grund mehr warum HAProxy mein favorisierter Loadbalancer fÃ¼r http(s) ist. Aber auch ohne HAProxy lÃ¤sst sich solch ein Angriff beim Apache Webserver abwehren. DafÃ¼r kann man [...]]]></description>
			<content:encoded><![CDATA[<p>Auf der <a href="http://haproxy.1wt.eu/news.html">HAProxy News Seite</a> habe ich eben den kurzen Artikel &#8220;<em>HAProxy to counter DoS attacks</em>&#8221; gelesen. Willy Tarreau schreibt dort warum HAProxy gegen <a href="http://ha.ckers.org/slowloris/">Slowloris</a> hilft. Sehr lesenswert!  Ein Grund mehr warum HAProxy mein favorisierter Loadbalancer fÃ¼r http(s) ist.</p>
<p>Aber auch ohne HAProxy lÃ¤sst sich solch ein Angriff beim Apache Webserver abwehren. DafÃ¼r kann man <a href="http://mod-qos.sourceforge.net/">mod_qos</a> nehmen. Eine <a href="http://www.howtoforge.com/how-to-defend-slowloris-ddos-with-mod_qos-apache2-on-debian-lenny">gute kurze Anleitung fÃ¼r Debian</a> findet sich wie so hÃ¤ufig bei <a href="http://www.howtoforge.com">howtoforge.com</a>. Das Modul baue ich mir sicher vor dem nÃ¤chsten Rothsee-Triathlon-Festival auf meinem Server ein <img src='http://blog.it4sport.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />    </p>
<p>Wehe dem, der slowloris gegen meine private Kiste einsetzt! <img src='http://blog.it4sport.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
 <span class="post2pdf_span" style="border: 0px solid gray; width: 160px; text-align: left; "><a href="http://blog.it4sport.de/wp-content/plugins/post2pdf/generate.php?post=ß" rel="nofollow"><img src="http://blog.it4sport.de/wp-content/plugins/post2pdf/icon/pdf.png" width="16px" height="16px" /> Artikel als PDF exportieren. </a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.it4sport.de/2009/07/29/prevent-dos-attacks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mehr Speicher</title>
		<link>http://blog.it4sport.de/2009/07/19/mehr-speicher/</link>
		<comments>http://blog.it4sport.de/2009/07/19/mehr-speicher/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 14:45:45 +0000</pubDate>
		<dc:creator>Gerd</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.it4sport.de/?p=1227</guid>
		<description><![CDATA[Ich hab meinen Server endlich mehr Speicher gegeben. Mit den bisherigen 512MB war er doch oft sehr am Limit. Jetzt hat er stolze 4GB. NatÃ¼rlich habe ich gleich den Speicher gerecht unter den Hauptdaemons (MySQL und Apache) auf dem Server aufgeteilt. Mysql war einfach. Dort hab ich einfach die Standard my.cnf von Debian durch die [...]]]></description>
			<content:encoded><![CDATA[<p>Ich hab meinen Server endlich mehr Speicher gegeben. Mit den bisherigen 512MB war er doch oft sehr am Limit. Jetzt hat er stolze 4GB. NatÃ¼rlich habe ich gleich den Speicher gerecht unter den Hauptdaemons (MySQL und Apache) auf dem Server aufgeteilt. </p>
<p>Mysql war einfach. Dort hab ich einfach die Standard my.cnf von Debian durch die my-large.cnf ausgetauscht. Fertig. Mal sehen ob das was bringt.</p>
<p>Nachdem alle meine Anwendungen auf dem Server unter PHP laufen haben ich mich beim Apache primÃ¤r auf den APC gestÃ¼rzt. Da habe ich den stolzen 32MB Cache eben vervierfacht. FÃ¼r den 128MB Cache sind folgende EintrÃ¤ge notwendig:</p>
<p><em>/etc/sysctl.conf:</em></p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">kernel.shmall <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 134217728</span>
kernel.shmmax <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 134217728</span></pre></div></div>

<p>Danach Aktivieren mit:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">sysctl <span style="color: #660033;">-p</span></pre></div></div>

<p>Und noch APC konfigurieren:<br />
<em>/etc/php5/apache2/conf.d/apc.ini </em></p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">apc.shm_size<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">128</span></pre></div></div>

<p>Noch Apache neustarten. Fertig.</p>
<p>Mal sehen ob ich mir jetzt das Swappen nicht mehr so oft anhÃ¶ren muss Mein Server steht im Arbeitszimmer neben mir und da kann ich tatsÃ¤chlich hÃ¶ren, wenn er swapt. <img src='http://blog.it4sport.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
 <span class="post2pdf_span" style="border: 0px solid gray; width: 160px; text-align: left; "><a href="http://blog.it4sport.de/wp-content/plugins/post2pdf/generate.php?post=Ë" rel="nofollow"><img src="http://blog.it4sport.de/wp-content/plugins/post2pdf/icon/pdf.png" width="16px" height="16px" /> Artikel als PDF exportieren. </a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.it4sport.de/2009/07/19/mehr-speicher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx &#8211; sagt mir (noch) nix</title>
		<link>http://blog.it4sport.de/2009/06/03/nginx-sagt-mir-noch-nix/</link>
		<comments>http://blog.it4sport.de/2009/06/03/nginx-sagt-mir-noch-nix/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 15:37:11 +0000</pubDate>
		<dc:creator>Gerd</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[cherokee]]></category>
		<category><![CDATA[HAProxy]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[lvs]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[perlbal]]></category>
		<category><![CDATA[pound]]></category>

		<guid isPermaLink="false">http://blog.it4sport.de/?p=1145</guid>
		<description><![CDATA[Oha, eben habe ich bei Netcraft gelesen, dass nginx der dritt beliebteste Webserver hinter Apache und IIs ist (ausgenommen den Google-Webserver). Lighttpd oder Cherokee werden nicht mal erwÃ¤hnt. Ich bin Ã¼berrascht weil er mir so gar nichts bisher gesagt hat. Aber scheinbar ist er wirklich interessant. nginx ist wohl deutlich mehr als ein Webserver, der [...]]]></description>
			<content:encoded><![CDATA[<p>Oha, eben habe ich bei <a href="http://news.netcraft.com/archives/2009/05/27/may_2009_web_server_survey.html">Netcraft</a> gelesen, dass <a href="http://nginx.net/">nginx</a> der dritt beliebteste Webserver hinter Apache und IIs ist (ausgenommen den Google-Webserver). <a href="http://www.lighttpd.net/">Lighttpd</a> oder <a href="http://www.cherokee-project.com/">Cherokee</a> werden nicht mal erwÃ¤hnt. Ich bin Ã¼berrascht weil er mir so gar nichts bisher gesagt hat. Aber scheinbar ist er wirklich interessant. nginx ist wohl deutlich mehr als ein Webserver, der Artikel hinter <a href="http://barry.wordpress.com/2008/04/28/load-balancer-update/">diesem Link</a> zeigt auf, dass er fÃ¼r <a href="http://wordpress.com">wordpress.com</a> eingesetzt wird und dort sogar das Loabalancing von <a href="http://www.apsis.ch/pound/">Pound</a> Ã¼bernommen hat. Sie hatten sich vorher die Ã¼blichen VerdÃ¤chtigen <a href="http://www.linuxvirtualserver.org/">LVS</a>, <a href="http://haproxy.1wt.eu/">HAProxy</a>, <a href="http://www.danga.com/perlbal/">Perlbal</a> angesehen. </p>
<p>Damit kommt der Webserver  unbedingt auf die &#8220;<em>merke ich mir Liste</em>&#8220;</p>
 <span class="post2pdf_span" style="border: 0px solid gray; width: 160px; text-align: left; "><a href="http://blog.it4sport.de/wp-content/plugins/post2pdf/generate.php?post=y" rel="nofollow"><img src="http://blog.it4sport.de/wp-content/plugins/post2pdf/icon/pdf.png" width="16px" height="16px" /> Artikel als PDF exportieren. </a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.it4sport.de/2009/06/03/nginx-sagt-mir-noch-nix/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>vlogger &#8211; Apache logfiles aufrÃ¤umen</title>
		<link>http://blog.it4sport.de/2009/03/18/vlogger-apache-logfiles-aufraumen/</link>
		<comments>http://blog.it4sport.de/2009/03/18/vlogger-apache-logfiles-aufraumen/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 17:00:56 +0000</pubDate>
		<dc:creator>Gerd</dc:creator>
				<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://blog.it4sport.de/?p=1023</guid>
		<description><![CDATA[Nachdem ich die Konfiguration meiner VHosts auf meinem Notebook aufgerÃ¤umt habe, war jetzt mein Server dran. Dort habe ich mich um die Logfiles gekÃ¼mmert und sie sauber getrennt. Dazu kommt jetzt vlogger zum Einsatz. Folgende 3 Zeilen in der apache2.conf machen die Arbeit: 1 2 3 ErrorLog &#34;&#124;/usr/sbin/vlogger -e -s error.log /var/log/apache2/&#34; LogFormat &#34;%{Host}i %l [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich die Konfiguration meiner VHosts auf meinem Notebook aufgerÃ¤umt habe, war jetzt mein Server dran. Dort habe ich mich um die Logfiles gekÃ¼mmert und sie sauber getrennt. Dazu kommt jetzt <a href="http://n0rp.chemlab.org/vlogger/">vlogger</a> zum Einsatz. Folgende 3 Zeilen in der <em>apache2.conf</em> machen die Arbeit:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="ini" style="font-family:monospace;">ErrorLog <span style="color: #933;">&quot;|/usr/sbin/vlogger -e -s error.log /var/log/apache2/&quot;</span>
LogFormat <span style="color: #933;">&quot;%{Host}i %l %u %t \&quot;</span>%r\<span style="color: #933;">&quot; %&gt;s %b \&quot;</span>%<span style="">&#123;</span>Referer<span style="">&#125;</span>i\<span style="color: #933;">&quot; \&quot;</span>%<span style="">&#123;</span>User-Agent<span style="">&#125;</span>i\<span style="color: #933;">&quot;&quot;</span> vlogger
CustomLog <span style="color: #933;">&quot;|/usr/sbin/vlogger -s access.log /var/log/apache2/&quot;</span> vlogger</pre></td></tr></table></div>

<p>SÃ¤mtliche CustomLog EintrÃ¤ge bei den jeweiligen VHosts sind dann Ã¼berflÃ¼ssig. Vlogger erstellt pro virtuellen Host ein Verzeichnis unter /var/log/apache2 mit dem Namen des Hosts.  </p>
 <span class="post2pdf_span" style="border: 0px solid gray; width: 160px; text-align: left; "><a href="http://blog.it4sport.de/wp-content/plugins/post2pdf/generate.php?post=ÿ" rel="nofollow"><img src="http://blog.it4sport.de/wp-content/plugins/post2pdf/icon/pdf.png" width="16px" height="16px" /> Artikel als PDF exportieren. </a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.it4sport.de/2009/03/18/vlogger-apache-logfiles-aufraumen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache vhost_alias</title>
		<link>http://blog.it4sport.de/2009/03/13/apache-vhost_alias/</link>
		<comments>http://blog.it4sport.de/2009/03/13/apache-vhost_alias/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 11:01:49 +0000</pubDate>
		<dc:creator>Gerd</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[vhost]]></category>

		<guid isPermaLink="false">http://blog.it4sport.de/?p=1015</guid>
		<description><![CDATA[Ich hab ja schon mal hier geschrieben, dass ich fÃ¼r meinen localhost zig Hostnames angelegt habe. DarÃ¼ber kann ich die Entwicklung der einzelnen Projekte super trennen. Jedes Projekt hat darÃ¼ber seine eigene URL (z.B. http://intranet.localhost/). Bisher habe ich fÃ¼r jede URL einen virtuellen lokalen Webserver konfiguriert. SchÃ¶ner Aufwand. Heute habe ich das endlich umgestellt und [...]]]></description>
			<content:encoded><![CDATA[<p>Ich hab ja schon mal <a href="http://blog.it4sport.de/2009/01/04/apache-und-localhost/">hier</a> geschrieben, dass ich fÃ¼r meinen localhost zig Hostnames angelegt habe. DarÃ¼ber kann ich die Entwicklung der einzelnen Projekte super trennen. Jedes Projekt hat darÃ¼ber seine eigene URL (z.B. http://intranet.localhost/).  Bisher habe ich fÃ¼r jede URL einen virtuellen lokalen Webserver konfiguriert. SchÃ¶ner Aufwand. Heute habe ich das endlich umgestellt und nutze jetzt mod_vhost_alias. Damit passiert das alles automatisch. Sehr geil. Hier mein neuer VHost:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="apache" style="font-family:monospace;">&lt;<span style="color: #000000; font-weight:bold;">VirtualHost</span> *&gt;
        <span style="color: #00007f;">ServerName</span> localhost
        <span style="color: #00007f;">VirtualDocumentRoot</span> /var/www/%1
        &lt;<span style="color: #000000; font-weight:bold;">Directory</span> /&gt;
                <span style="color: #00007f;">Options</span> <span style="color: #0000ff;">FollowSymLinks</span>
                <span style="color: #00007f;">AllowOverride</span> <span style="color: #0000ff;">None</span>
        &lt;/<span style="color: #000000; font-weight:bold;">Directory</span>&gt;
&lt;/<span style="color: #000000; font-weight:bold;">VirtualHost</span>&gt;</pre></td></tr></table></div>

<p>Damit lege ich pro Projekt jetzt nur noch den Hostnamen an (projektname.localhost) und dann noch den Symlink auf das entsprechende Projektverzeichnis:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>Projekverzeichnis<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>projektname</pre></div></div>

<p>Fertig.</p>
 <span class="post2pdf_span" style="border: 0px solid gray; width: 160px; text-align: left; "><a href="http://blog.it4sport.de/wp-content/plugins/post2pdf/generate.php?post=÷" rel="nofollow"><img src="http://blog.it4sport.de/wp-content/plugins/post2pdf/icon/pdf.png" width="16px" height="16px" /> Artikel als PDF exportieren. </a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.it4sport.de/2009/03/13/apache-vhost_alias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mod_setenvif</title>
		<link>http://blog.it4sport.de/2009/03/03/mod_setenvif/</link>
		<comments>http://blog.it4sport.de/2009/03/03/mod_setenvif/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 07:15:48 +0000</pubDate>
		<dc:creator>Gerd</dc:creator>
				<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://blog.it4sport.de/?p=992</guid>
		<description><![CDATA[Weiter auf der Suche nach ein wenig mehr Performance auf meinem Apache Server habe ich wieder was eingestellt. Bei meiner Konfig sendet der Server die Apache internal dummy connections an den konfigurierten localhost. Der logt diese auch brav mit. Aber wen interessiert diese EintrÃ¤ge? Ich will die IOs verhindern. Daher habe ich folgende Zeilen in [...]]]></description>
			<content:encoded><![CDATA[<p>Weiter auf der Suche nach ein wenig mehr Performance auf meinem Apache Server habe ich wieder was eingestellt. Bei meiner Konfig sendet der Server  die Apache internal dummy connections an den konfigurierten localhost. Der logt diese auch brav mit. Aber wen interessiert diese EintrÃ¤ge? Ich will die IOs verhindern. Daher habe ich folgende Zeilen in der Konfig ergÃ¤nzt:</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">  SetEnvIf Remote_Addr <span style="color: #933;">&quot;127\.0\.\.1&quot;</span> dontlog
  CustomLog /var/www/localhost/log/access.log combined env<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">!dontlog</span></pre></div></div>

<p>Jetzt stellt sich fÃ¼r mich nur die Frage, ob das Laden des Moduls setenvif und diese PrÃ¼fung pro Request nicht mehr Resourcen fressen als das simple Speichern. </p>
 <span class="post2pdf_span" style="border: 0px solid gray; width: 160px; text-align: left; "><a href="http://blog.it4sport.de/wp-content/plugins/post2pdf/generate.php?post=à" rel="nofollow"><img src="http://blog.it4sport.de/wp-content/plugins/post2pdf/icon/pdf.png" width="16px" height="16px" /> Artikel als PDF exportieren. </a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.it4sport.de/2009/03/03/mod_setenvif/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spiderman is having me for dinner tonightâ€¦ Teil 2</title>
		<link>http://blog.it4sport.de/2009/02/12/spiderman-is-having-me-for-dinner-tonight%e2%80%a6-teil-2/</link>
		<comments>http://blog.it4sport.de/2009/02/12/spiderman-is-having-me-for-dinner-tonight%e2%80%a6-teil-2/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 08:08:52 +0000</pubDate>
		<dc:creator>Gerd</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.it4sport.de/?p=938</guid>
		<description><![CDATA[Gestern Abend (gegen 22:00 Uhr) habe ich noch ein paar Ding optimiert. Am wichtigsten scheint mir, dass ich nur noch die PHP- und Apache Module lade, die ich wirklich benÃ¶tige. Das hat meinen Speicher ordentlich entlastet und der Server hat seitdem wirklich massiv weniger Last! Ich schreib das hier auf, weil es vielleicht jemand anderen [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern Abend (gegen 22:00 Uhr) habe ich noch ein paar Ding optimiert. Am wichtigsten scheint mir, dass ich nur noch die PHP- und Apache Module lade, die ich wirklich benÃ¶tige. Das hat meinen Speicher ordentlich entlastet und der Server hat seitdem wirklich massiv weniger Last! </p>
<p>Ich schreib das hier auf, weil es vielleicht jemand anderen auch erinnert mal auf zu rÃ¤umen und damit ich nicht wieder anfange irgendwelche unnÃ¶tigen Dinge zu installieren. Der Server hat mittlerweile soviel Traffic, dass er etwas Aufmerksamkeit und Sorgfalt verdient hat.</p>
<p><img src="http://blog.it4sport.de/wp-content/uploads/2009/02/rrd2-system1.png" alt="rrd2-system1" title="rrd2-system1" width="497" height="330" class="size-full wp-image-942" /></p>
<p>Achja noch was. Damit die Apache internal dummy connections nicht immer auf dem aufwendigsten Server aufschlagen habe ich mir einen localhost definiert. Das hilft<br />
<virtualhost *:80><br />
  ServerName localhost<br />
  ServerAlias 127.0.0.1<br />
  ServerAlias 172.16.1.1<br />
  ServerAlias 212.114.250.32<br />
  DocumentRoot /var/www/localhost/htdocs<br />
  CustomLog /var/www/localhost/log/access.log combined<br />
  ErrorLog /var/www/localhost/log/error.log<br />
  <Directory /var/www/localhost/hdocs><br />
     AllowOverride None<br />
  </Directory><br />
</virtualhost></p>
<p><virtualhost *:8080><br />
  GnuTLSEnable on<br />
  GnuTLSCertificateFile /etc/ssl/CA/private/it4sport.de.crt<br />
  GnuTLSKeyFile /etc/ssl/CA/private/it4sport.de.key<br />
  GnuTLSPriorities NORMAL<br />
  ServerName localhost<br />
  ServerAlias 127.0.0.1<br />
  ServerAlias 172.16.1.1<br />
  ServerAlias 212.114.250.32<br />
  DocumentRoot /var/www/localhost/htdocs<br />
  CustomLog /var/www/localhost/log/access.log combined<br />
  ErrorLog /var/www/localhost/log/error.log<br />
  <Directory /var/www/localhost/hdocs><br />
     AllowOverride None<br />
  </Directory><br />
</virtualhost></p>
<p>In der index.html steht einzig und allein &#8220;no content&#8221; drin.</p>
<p>Wenn ich noch mehr Stellschrauben finde und einstelle, dann schreibe ich hier mir das auf. </p>
 <span class="post2pdf_span" style="border: 0px solid gray; width: 160px; text-align: left; "><a href="http://blog.it4sport.de/wp-content/plugins/post2pdf/generate.php?post=ª" rel="nofollow"><img src="http://blog.it4sport.de/wp-content/plugins/post2pdf/icon/pdf.png" width="16px" height="16px" /> Artikel als PDF exportieren. </a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.it4sport.de/2009/02/12/spiderman-is-having-me-for-dinner-tonight%e2%80%a6-teil-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Spiderman is having me for dinner tonight&#8230;</title>
		<link>http://blog.it4sport.de/2009/02/11/spiderman-is-having-me-for-dinner-tonight/</link>
		<comments>http://blog.it4sport.de/2009/02/11/spiderman-is-having-me-for-dinner-tonight/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 15:48:49 +0000</pubDate>
		<dc:creator>Gerd</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Spiders]]></category>

		<guid isPermaLink="false">http://blog.it4sport.de/?p=936</guid>
		<description><![CDATA[Heute Mittag ist die Last auf meinem Server ins unermessliche (>10) gestiegen. Apache-Prozesse ohne Ende! Wer kommt schon auf die Idee, dass sÃ¤mtliche Bots dieser Welt gleichzeitig alles von meiner Kiste absaugen wollen. Jetzt ist die Last wieder normal (]]></description>
			<content:encoded><![CDATA[<p>Heute Mittag ist die Last auf meinem Server ins unermessliche (>10) gestiegen. Apache-Prozesse ohne Ende! Wer kommt schon auf die Idee, dass sÃ¤mtliche Bots dieser Welt gleichzeitig alles von meiner Kiste absaugen wollen. Jetzt ist die Last wieder normal (<1). Was habe ich dazu getan?</p>
<p>Als erstes habe ich mir die Apache Konfiguration angesehen. Hab mit der Anzahl der Worker und der MaxClients gespielt. Gebracht hat's aber fast nichts. Ich suche immer noch nach einer schlauen Empfehlung fÃ¼r diese Werte.</p>
<p>Nachdem 90% meiner Seiten auf dem Server PHP-Seiten sind hab ich den APC-Accelerator installiert:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> php-apc
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 restart</pre></td></tr></table></div>

<p>Danach gings dem Server schon besser. Aber immer noch nicht gut.</p>
<p>Also habe ich mir die Logfiles angesehen. Speziell das Logfile von rothsee-triathlon.de hat mir die Augen geÃ¶ffnet. Die Bots haben sich alles mÃ¶gliche unnÃ¶tige geholt. Daher habe mich endlich um die robots.txt gekÃ¼mmert. Bei privaten Seiten sieht sie nun so aus:</p>
<pre>
User-agent: *
Crawl-delay: 10
Disallow: /
</pre>
<p>Beim Rothsee-Triathlon verbiete ich erstmal alles und erlaube nur noch das wesentliche:</p>
<pre>
User-agent: *
Crawl-delay: 10
Disallow: /la/page.php?id=_func_fotourkunde
Disallow: /la/page.php?id=_func_Bild_anzeigen
Allow: /index.php
Allow: /la/index.php
Allow: /la/page.php
Disallow: /
</pre>
<p>Und schon schwitz mein Server nicht mehr. Muss ich mir aufschreiben. NÃ¤chstes mal verpenne ich das bestimmt wieder</p>
 <span class="post2pdf_span" style="border: 0px solid gray; width: 160px; text-align: left; "><a href="http://blog.it4sport.de/wp-content/plugins/post2pdf/generate.php?post=¨" rel="nofollow"><img src="http://blog.it4sport.de/wp-content/plugins/post2pdf/icon/pdf.png" width="16px" height="16px" /> Artikel als PDF exportieren. </a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.it4sport.de/2009/02/11/spiderman-is-having-me-for-dinner-tonight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yslow oder gib Gas</title>
		<link>http://blog.it4sport.de/2009/02/05/yslow-oder-gib-gas/</link>
		<comments>http://blog.it4sport.de/2009/02/05/yslow-oder-gib-gas/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 22:49:53 +0000</pubDate>
		<dc:creator>Gerd</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[diverse]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://blog.it4sport.de/?p=907</guid>
		<description><![CDATA[Auf meiner Kiste lÃ¤uft auch noch die Seite unsere Triathlon Abteilung. Diese Seite bekommt an den Tagen rund um das Wochenende vom Rothsee-Triathlon-Festival ordentlich Last ab. Und nachdem dieses Jahr beide Veranstaltungen am gleichen Wochenende sind ist die Performance noch viel wichtiger. Daher bleibt mir auch nichts Ã¼brig als dafÃ¼r zu sorgen, dass die Seite [...]]]></description>
			<content:encoded><![CDATA[<p>Auf meiner Kiste lÃ¤uft auch noch die Seite unsere <a href="http://www.rothsee-triathlon.de/">Triathlon Abteilung</a>. Diese Seite bekommt an den Tagen rund um das Wochenende vom <a href="http://www.rothsee-triathlon.de/la/page.php?id=RF%20-%20Titel&#038;sprache=de">Rothsee-Triathlon-Festival</a> ordentlich Last ab. Und nachdem dieses Jahr beide Veranstaltungen am gleichen Wochenende sind ist die Performance noch viel wichtiger. Daher bleibt mir auch nichts Ã¼brig als dafÃ¼r zu sorgen, dass die Seite mÃ¶glichst schnell und resourcensparend ist. Obwohl ich schon viel an der Datenbankstruktur und an meinem Source optimiert habe muss ich da aber noch mal mit einem Profiler ran. </p>
<p>Auch ohne der eigenen Software geht noch mehr. Daher habe ich mir heute abend mal <a href="http://developer.yahoo.com/yslow/">Yslow</a> installiert. Warum das Teil Y<strong>slow</strong> heiÃŸt ist mir auch ein RÃ¤tsel&#8230; Jedenfalls untersucht das Teil die Website nach 13 verschiedenen Kriterien und gibt jeweils Tipps. Ein paar RatschlÃ¤gen kann ich oder will nicht folgen. Ein paar waren wirklich hilfreich:</p>
<ul>
<li><strong>Gzip components</strong><br />
Ich hatte das deflate modul im apache noch nicht installiert. Jetzt ist es installiert und wie folgt konfiguriert:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="ini" style="font-family:monospace;">&lt;IfModule mod_deflate.c&gt;
          AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript text/css
&lt;/IfModule&gt;</pre></td></tr></table></div>

</li>
<li><strong>Put JS at the bottom</strong><br />
Logisch&#8230; aber warum muss man das erst gesagt bekommen <img src='http://blog.it4sport.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li><strong>Minify JS</strong><br />
Vorerst verschwende ich noch die paar Bytes. Ich hab keine Lust nach dem Auschecken Whitespaces zu entfernen.
</li>
<li><strong>Avoid redirects</strong><br />
Da hat mir Yslow doch tatsÃ¤chlich gezeigt, dass ich ein Javascript einbinden will, dass gar nicht mehr exisitert. Danke.</li>
<li><strong>Add an Expires header</strong><br />
Bei dem dynamischen Content meiner Seite habe ich keine Lust mich da zu verschlechtern, aber nichts spricht dagegen die Javascripts und CSS langlebiger zu machen.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="ini" style="font-family:monospace;">      ExpiresActive On
      ExpiresDefault <span style="color: #933;">&quot;now plus 1 day&quot;</span>
      ExpiresByType text/css   <span style="color: #933;">&quot;access plus 1 month&quot;</span>
      ExpiresByType text/js    <span style="color: #933;">&quot;access plus 1 month&quot;</span></pre></td></tr></table></div>

</li>
</ul>
<p>Insgesamt ein echt nÃ¼tzliches Tool. Die Tipps sind eigentlich alle naheliegend nur Ã¼bersieht man sie stÃ¤ndig. </p>
<p>Achja meine Seite hat ein &#8220;C&#8221; bekommen. Das geht noch besser. Wir arbeiten daran aber yahoo.de hat auch nur ein C <img src='http://blog.it4sport.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8230;</p>
 <span class="post2pdf_span" style="border: 0px solid gray; width: 160px; text-align: left; "><a href="http://blog.it4sport.de/wp-content/plugins/post2pdf/generate.php?post=‹" rel="nofollow"><img src="http://blog.it4sport.de/wp-content/plugins/post2pdf/icon/pdf.png" width="16px" height="16px" /> Artikel als PDF exportieren. </a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.it4sport.de/2009/02/05/yslow-oder-gib-gas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

