<?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>ITWS BLOG &#187; linux</title>
	<atom:link href="http://blog.itws.de/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.itws.de</link>
	<description>The cake is a lie!</description>
	<lastBuildDate>Tue, 31 Jan 2012 10:34:04 +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>Arch Linux Pacman Dependency Skip</title>
		<link>http://blog.itws.de/972/arch-linux-pacman-dependency-skip/</link>
		<comments>http://blog.itws.de/972/arch-linux-pacman-dependency-skip/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 09:06:27 +0000</pubDate>
		<dc:creator>Benny</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[arch linux]]></category>
		<category><![CDATA[pacman]]></category>

		<guid isPermaLink="false">http://blog.itws.de/?p=972</guid>
		<description><![CDATA[Da ich es immer wieder vergesse: $ pacman -Rdd package Ähnliche ArtikelDas Arch Linux User-Community RepositoryArch Linux: Alle explizit installierten Pakete auflistenSabayon: Erster Eindruck]]></description>
			<content:encoded><![CDATA[<p>Da ich es immer wieder vergesse:</p>
<pre>$ pacman -Rdd package</pre>
<h4  class="related_post_title">Ähnliche Artikel</h4><ul class="related_post"><li><a href="http://blog.itws.de/369/das-arch-linux-user-community-repository/" title="Das Arch Linux User-Community Repository">Das Arch Linux User-Community Repository</a></li><li><a href="http://blog.itws.de/912/arch-linux-alle-explizit-installierten-pakete-auflisten/" title="Arch Linux: Alle explizit installierten Pakete auflisten">Arch Linux: Alle explizit installierten Pakete auflisten</a></li><li><a href="http://blog.itws.de/910/sabayon-erster-eindruck/" title="Sabayon: Erster Eindruck">Sabayon: Erster Eindruck</a></li></ul> <p><a href="http://blog.itws.de/?flattrss_redirect&amp;id=972&amp;md5=f9d0d39f193da0ff108dce59ab518ad3" title="Flattr" target="_blank"><img src="http://blog.itws.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.itws.de/972/arch-linux-pacman-dependency-skip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arch Linux: Alle explizit installierten Pakete auflisten</title>
		<link>http://blog.itws.de/912/arch-linux-alle-explizit-installierten-pakete-auflisten/</link>
		<comments>http://blog.itws.de/912/arch-linux-alle-explizit-installierten-pakete-auflisten/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 14:35:31 +0000</pubDate>
		<dc:creator>Benny</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[arch linux]]></category>

		<guid isPermaLink="false">http://blog.itws.de/?p=912</guid>
		<description><![CDATA[Kurz und schmerzlos: $ pacman -Qe Ähnliche ArtikelArch Linux Pacman Dependency SkipSabayon: Erster EindruckGnome 3.2 im Arch Linux Repository]]></description>
			<content:encoded><![CDATA[<p>Kurz und schmerzlos:</p>
<pre>$ pacman -Qe</pre>
<h4  class="related_post_title">Ähnliche Artikel</h4><ul class="related_post"><li><a href="http://blog.itws.de/972/arch-linux-pacman-dependency-skip/" title="Arch Linux Pacman Dependency Skip">Arch Linux Pacman Dependency Skip</a></li><li><a href="http://blog.itws.de/910/sabayon-erster-eindruck/" title="Sabayon: Erster Eindruck">Sabayon: Erster Eindruck</a></li><li><a href="http://blog.itws.de/776/gnome-3-2-im-arch-linux-repository/" title="Gnome 3.2 im Arch Linux Repository">Gnome 3.2 im Arch Linux Repository</a></li></ul> <p><a href="http://blog.itws.de/?flattrss_redirect&amp;id=912&amp;md5=81fcc2ee08877662a62907468f69318d" title="Flattr" target="_blank"><img src="http://blog.itws.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.itws.de/912/arch-linux-alle-explizit-installierten-pakete-auflisten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sabayon: Erster Eindruck</title>
		<link>http://blog.itws.de/910/sabayon-erster-eindruck/</link>
		<comments>http://blog.itws.de/910/sabayon-erster-eindruck/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 13:19:33 +0000</pubDate>
		<dc:creator>Benny</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[arch linux]]></category>
		<category><![CDATA[sabayon]]></category>

		<guid isPermaLink="false">http://blog.itws.de/?p=910</guid>
		<description><![CDATA[Durch eine kleine Diskussion auf G+ wurde ich wieder daran erinnert, dass ich seit einigen Wochen schon einen Blick in die Sabayon Linux Distribution werfen möchte. Ich nutze die ruhige Phase zwischen den Jahren um das System mal auf in einer VBox zu installieren. Was ist Sabayon? Sabayon ist eine auf Gentoo basierende Linux Distribution. Die Philosophie hinter dem Projekt ist, dass alles out of the box funktioniert und die best mögliche UserExperience bietet. Klingt [...]]]></description>
			<content:encoded><![CDATA[<p>Durch eine kleine Diskussion auf G+ wurde ich wieder daran erinnert, dass ich seit einigen Wochen schon einen Blick in die Sabayon Linux Distribution werfen möchte. Ich nutze die ruhige Phase zwischen den Jahren um das System mal auf in einer VBox zu installieren.</p>
<p>Was ist Sabayon? Sabayon ist eine auf Gentoo basierende Linux Distribution. Die Philosophie hinter dem Projekt ist, dass alles out of the box funktioniert und die best mögliche UserExperience bietet.<br />
Klingt für mich im ersten Moment nach einer Distribution, welche die Vorteile von Gentoo und Ubuntu vereint. Und damit schonmal sehr interessant. Ich hatte lange Zeit Ubuntu und Gentoo verwendet und bin nun seit knapp 2 Jahren ein Arch Linux User. Mal sehen, ob mich Sabayon begeistern kann <img src='http://blog.itws.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-910"></span></p>
<p>Ich habe mir also mal die Sabayon 7 Gnome x86 iso geladen. Leider ist der Installer beim ersten Versuch abgeraucht. Das kommt davon, wenn man die root Partition zu klein dimensionier (3,5GB) und die Warnungen ignoriert <img src='http://blog.itws.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Beim zweiten Versuch hat es dann schließlich geklappt. 18GB Root Partition sollten jetzt ausreichen.</p>
<p>Um auf meinem Notebook Einzug zu erhalten, müssen einige Dinge fehlerfrei und interoperabel laufen: Nginx, Tomcat6, Sun JRE 1.6, Ruby 1.9, ZSH, VirtualBox, synergy, etc. Sobald ich das alles in der VBox zum Laufen bekommen habe, das System an sich stabil läuft und mich davon überzeugen kann, dass es mir mehr bringt als ArchLinux, werde ich es auf meinem Notebook installieren.</p>
<p>Mittlerweile ist das System fertig installiert und gebootet. Dabei ist mir im Grub schon direkt aufgefallen, dass das System noch mit dem Kernel 3.0.0 läuft. Mein  Arch Linux bootet  z.Z. den Kernel 3.1.5. Mal sehen, wie es nach dem Upgrade aussieht.</p>
<p>Nach dem Login befinde ich mich im Fallback Mode von Gnome 3.2. Warum der Fallback? Der erzwungene Fallback-Modus ist deaktiviert und auch beim Anmelden habe ich keine Option für den Fallback Modus gesehen oder entsprechend gesetzt. An der fehlenden 3D-Beschleunigung von VirtualBox kann es nicht liegen, da die LiveCD auch die Gnome-Shell gestartet hat. Strange.</p>
<p>Was mir direkt gut gefällt: LibreOffice, Gimp, Evince, Chromium, XChat, Empathy, Exalie, Adobe Flash Player, etc. sind vorinstalliert. Und auch das Menü sieht sehr übersichtlich aus. Außerdem gefällt mir das Icon-Set, aber das ist nebensächlich. Dafür ist VIM aber nicht vorinstalliert :/</p>
<p>Der grafische Paketmanager macht einen netten Eindruck, den werde ich als Shell Ninja aber ohnehin nicht verwenden. Equo lässt sich wirklich einfach bedienen und ist sehr gesprächig. Leider so gesprächig, dass es unübersichtlich wird. Außerdem verwendet Entropy die PROXY-Umgebungsvariablen nicht. Die Proxy Konfiguration muss also manuell in die entropy.conf eingetragen werden, was weniger flexibel ist.</p>
<p>Equo search ist ähnlich unübersichtlich wie die Portage Variante. Hier schneidet Pacman bzw. Yaourt auch etwas besser ab.</p>
<p>Nach dem Upgrade auf den aktuellen Stand und einem reboot steht mir dann zwar immer noch kein aktueller Kernel zur Verfügung aber dafür stirbt gnome auch instant nach dem booten. Super. Grund: assertion failed.</p>
<p>Damit ist mein Sabayon Experiment erstmal beendet.</p>
<h4  class="related_post_title">Ähnliche Artikel</h4><ul class="related_post"><li><a href="http://blog.itws.de/972/arch-linux-pacman-dependency-skip/" title="Arch Linux Pacman Dependency Skip">Arch Linux Pacman Dependency Skip</a></li><li><a href="http://blog.itws.de/912/arch-linux-alle-explizit-installierten-pakete-auflisten/" title="Arch Linux: Alle explizit installierten Pakete auflisten">Arch Linux: Alle explizit installierten Pakete auflisten</a></li><li><a href="http://blog.itws.de/776/gnome-3-2-im-arch-linux-repository/" title="Gnome 3.2 im Arch Linux Repository">Gnome 3.2 im Arch Linux Repository</a></li></ul> <p><a href="http://blog.itws.de/?flattrss_redirect&amp;id=910&amp;md5=af3d93b7eec672fd4d42268b6f4a83c6" title="Flattr" target="_blank"><img src="http://blog.itws.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.itws.de/910/sabayon-erster-eindruck/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Gnome 3.2 im Arch Linux Repository</title>
		<link>http://blog.itws.de/776/gnome-3-2-im-arch-linux-repository/</link>
		<comments>http://blog.itws.de/776/gnome-3-2-im-arch-linux-repository/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 16:47:51 +0000</pubDate>
		<dc:creator>Benny</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[arch linux]]></category>
		<category><![CDATA[gnome3]]></category>
		<category><![CDATA[gnome3.2]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.itws.de/?p=776</guid>
		<description><![CDATA[&#8230; und die Gnome Shell suckt immer noch &#8230; Warum? Weil es keinen ordentlichen Sys Tray gibt. Verstehe nicht ganz warum so etwas essentielles fehlt, aber nagut. Sonst sieht es schon recht gut aus. Ich lass es jetzt mal ein paar Wochen im Fallback Mode laufen (um einen Sys Tray zu haben) und dann überlege ich mir nochmal ob mir das gefällt Ähnliche ArtikelArch Linux Pacman Dependency SkipArch Linux: Alle explizit installierten Pakete auflistenSabayon: Erster [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230; und die Gnome Shell suckt immer noch &#8230;</p>
<p>Warum? Weil es keinen ordentlichen Sys Tray gibt. Verstehe nicht ganz warum so etwas essentielles fehlt, aber nagut.</p>
<p>Sonst sieht es schon recht gut aus. Ich lass es jetzt mal ein paar Wochen im Fallback Mode laufen (um einen Sys Tray zu haben) und dann überlege ich mir nochmal ob mir das gefällt <img src='http://blog.itws.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h4  class="related_post_title">Ähnliche Artikel</h4><ul class="related_post"><li><a href="http://blog.itws.de/972/arch-linux-pacman-dependency-skip/" title="Arch Linux Pacman Dependency Skip">Arch Linux Pacman Dependency Skip</a></li><li><a href="http://blog.itws.de/912/arch-linux-alle-explizit-installierten-pakete-auflisten/" title="Arch Linux: Alle explizit installierten Pakete auflisten">Arch Linux: Alle explizit installierten Pakete auflisten</a></li><li><a href="http://blog.itws.de/910/sabayon-erster-eindruck/" title="Sabayon: Erster Eindruck">Sabayon: Erster Eindruck</a></li></ul> <p><a href="http://blog.itws.de/?flattrss_redirect&amp;id=776&amp;md5=e1158385db93a11ce7f2dc0910bbfbcb" title="Flattr" target="_blank"><img src="http://blog.itws.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.itws.de/776/gnome-3-2-im-arch-linux-repository/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress unter Nginx</title>
		<link>http://blog.itws.de/783/wordpress-unter-nginx/</link>
		<comments>http://blog.itws.de/783/wordpress-unter-nginx/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 07:20:50 +0000</pubDate>
		<dc:creator>Benny</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.itws.de/?p=783</guid>
		<description><![CDATA[Im Zuge meiner Umstellung von Apache auf Nginx mussten auch vier WordPress-Installationen migriert werden. Interessant dabei waren in erster Linie die Permalinks zu erhalten (und damit die RewriteRules zu portieren). Da es sich um vier voneinander unabhängige WordPress-Installationen handelt und ich die Server Config DRY halten möchte, gibt es für die WordPress-spezifischen Sachen mal wieder eine include Datei: # vim /etc/nginx/wordpress.inc rewrite ^(/[^/]+/)?files/(.+) /wp-includes/ms-files.php?file=$2 last; rewrite ^(/[^/]+)?(/wp-.*) $2 last; rewrite ^(/[^/]+)?(/.*\.php) $2 last; rewrite ^/(.*)$ [...]]]></description>
			<content:encoded><![CDATA[<p>Im Zuge meiner Umstellung von Apache auf Nginx mussten auch vier WordPress-Installationen migriert werden. Interessant dabei waren in erster Linie die Permalinks zu erhalten (und damit die RewriteRules zu portieren).</p>
<p>Da es sich um vier voneinander unabhängige WordPress-Installationen handelt und ich die Server Config DRY halten möchte, gibt es für die WordPress-spezifischen Sachen mal wieder eine include Datei:</p>
<pre># vim /etc/nginx/wordpress.inc</pre>
<pre>rewrite ^(/[^/]+/)?files/(.+) /wp-includes/ms-files.php?file=$2 last;

rewrite ^(/[^/]+)?(/wp-.*) $2 last;
rewrite ^(/[^/]+)?(/.*\.php) $2 last;

rewrite ^/(.*)$ /index.php?q=$1 last;

if (!-e $request_filename) {
        rewrite ^(.+)$ /index.php?q=$1 last;
}</pre>
<p>&nbsp;</p>
<p>Nun müssen die VHost-Konfigurationen noch entsprechend um ein Include erweitern werden:</p>
<pre># blog.itws.de
server {
        server_name blog.itws.de;
        root /var/www/itws.de/blog;

        include defaults.inc;
        include enable_php.inc;
        include wordpress.inc;
}</pre>
<p>Fertig. Wie ihr sehen könnt, an sich also kein Hexenwerk.</p>
<h4  class="related_post_title">Ähnliche Artikel</h4><ul class="related_post"><li><a href="http://blog.itws.de/769/debian-von-apache-zu-nginx-teil-5-basic-authentication/" title="Debian: Von Apache zu Nginx &#8211; Teil 5: Basic Authentication">Debian: Von Apache zu Nginx &#8211; Teil 5: Basic Authentication</a></li><li><a href="http://blog.itws.de/767/debian-von-apache-zu-nginx-teil-4-einen-tomcat-anbinden/" title="Debian: Von Apache zu Nginx &#8211; Teil 4: Einen Tomcat anbinden">Debian: Von Apache zu Nginx &#8211; Teil 4: Einen Tomcat anbinden</a></li><li><a href="http://blog.itws.de/763/debian-von-apache-zu-nginx-teil-3-php/" title="Debian: Von Apache zu Nginx &#8211; Teil 3: PHP">Debian: Von Apache zu Nginx &#8211; Teil 3: PHP</a></li></ul> <p><a href="http://blog.itws.de/?flattrss_redirect&amp;id=783&amp;md5=f0eb72662f5680973ae348d881547f44" title="Flattr" target="_blank"><img src="http://blog.itws.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.itws.de/783/wordpress-unter-nginx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian: Von Apache zu Nginx &#8211; Teil 5: Basic Authentication</title>
		<link>http://blog.itws.de/769/debian-von-apache-zu-nginx-teil-5-basic-authentication/</link>
		<comments>http://blog.itws.de/769/debian-von-apache-zu-nginx-teil-5-basic-authentication/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 07:35:07 +0000</pubDate>
		<dc:creator>Benny</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://blog.itws.de/?p=769</guid>
		<description><![CDATA[Übersicht Teil 1: Vorwort Teil 2: Installation und Konfiguration Teil 3: PHP Teil 4: Einen Tomcat anbinden Teil 5: Basic Authentication &#160; Wie im ersten Teil beschrieben, muss ich ein paar meiner VHosts per Basic Authentication schützen. Hier zeige ich euch noch kurz, wie ich das mit nginx angestellt habe. In meinem Fall möchte ich die Subdomain ci.itws.de schützen. Dazu lege ich mir erstmal ein Verzeichnis auth an, in dem ich die htpasswd-Dateien speichere: # [...]]]></description>
			<content:encoded><![CDATA[<h1>Übersicht</h1>
<ul>
<li><a href="http://blog.itws.de/747/debian-von-apache-zu-nginx-teil-1-vorwort/">Teil 1: Vorwort</a></li>
<li><a href="http://blog.itws.de/754/debian-von-apache-zu-nginx-teil-2-installation-und-konfiguration/">Teil 2: Installation und Konfiguration</a></li>
<li><a href="http://blog.itws.de/763/debian-von-apache-zu-nginx-teil-3-php/">Teil 3: PHP</a></li>
<li><a href="http://blog.itws.de/767/debian-von-apache-zu-nginx-teil-4-einen-tomcat-anbinden/">Teil 4: Einen Tomcat anbinden</a></li>
<li><strong>Teil 5: Basic Authentication</strong></li>
</ul>
<p>&nbsp;</p>
<p>Wie im ersten Teil beschrieben, muss ich ein paar meiner VHosts per Basic Authentication schützen. Hier zeige ich euch noch kurz, wie ich das mit nginx angestellt habe.</p>
<p>In meinem Fall möchte ich die Subdomain ci.itws.de schützen. Dazu lege ich mir erstmal ein Verzeichnis auth an, in dem ich die htpasswd-Dateien speichere:</p>
<pre># mkdir /etc/nginx/auth</pre>
<p>&nbsp;</p>
<p>Und ich lege mir einen Benutzer an:</p>
<pre># htpasswd -c /etc/nginx/auth/ci ghost</pre>
<p>&nbsp;</p>
<p>Danach muss ich nur noch den server-Block in der Datei /etc/nginx/sites-available/itws.de anpassen:</p>
<pre>server {
    server_name ci.itws.de;
    root /var/www/itws.de/ci;

    include defaults.inc;
    include enable_php.inc;

    auth_basic  "ITWS CI";
    auth_basic_user_file auth/ci;
}</pre>
<p>Fertig. Nach einem schnellen Restart von Nginx ist ci.itws.de per BA geschützt.</p>
<h4  class="related_post_title">Ähnliche Artikel</h4><ul class="related_post"><li><a href="http://blog.itws.de/783/wordpress-unter-nginx/" title="Wordpress unter Nginx">Wordpress unter Nginx</a></li><li><a href="http://blog.itws.de/767/debian-von-apache-zu-nginx-teil-4-einen-tomcat-anbinden/" title="Debian: Von Apache zu Nginx &#8211; Teil 4: Einen Tomcat anbinden">Debian: Von Apache zu Nginx &#8211; Teil 4: Einen Tomcat anbinden</a></li><li><a href="http://blog.itws.de/763/debian-von-apache-zu-nginx-teil-3-php/" title="Debian: Von Apache zu Nginx &#8211; Teil 3: PHP">Debian: Von Apache zu Nginx &#8211; Teil 3: PHP</a></li></ul> <p><a href="http://blog.itws.de/?flattrss_redirect&amp;id=769&amp;md5=7db2ec2e0c5dada81ac7a15e3fc8779f" title="Flattr" target="_blank"><img src="http://blog.itws.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.itws.de/769/debian-von-apache-zu-nginx-teil-5-basic-authentication/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Debian: Von Apache zu Nginx &#8211; Teil 4: Einen Tomcat anbinden</title>
		<link>http://blog.itws.de/767/debian-von-apache-zu-nginx-teil-4-einen-tomcat-anbinden/</link>
		<comments>http://blog.itws.de/767/debian-von-apache-zu-nginx-teil-4-einen-tomcat-anbinden/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 07:20:51 +0000</pubDate>
		<dc:creator>Benny</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://blog.itws.de/?p=767</guid>
		<description><![CDATA[Übersicht Teil 1: Vorwort Teil 2: Installation und Konfiguration Teil 3: PHP Teil 4: Einen Tomcat anbinden Teil 5: Basic Authentication &#160; Ich möchte den Nginx auch auf meinem Notebook verwenden um dort die gleiche Umgebung wie auf dem Server zu haben. Und auch die gleiche Performance. Da ich aber in der Firma mit dem Tomcat arbeite (den ich zur Zeit über mod_proxy an den Apachen angeklingt habe), muss ich meinen Nginx auch entsprechen konfigurieren. [...]]]></description>
			<content:encoded><![CDATA[<h1>Übersicht</h1>
<ul>
<li><a href="http://blog.itws.de/747/debian-von-apache-zu-nginx-teil-1-vorwort/">Teil 1: Vorwort</a></li>
<li><a href="http://blog.itws.de/754/debian-von-apache-zu-nginx-teil-2-installation-und-konfiguration/">Teil 2: Installation und Konfiguration</a></li>
<li><a href="http://blog.itws.de/763/debian-von-apache-zu-nginx-teil-3-php/">Teil 3: PHP</a></li>
<li><strong>Teil 4: Einen Tomcat anbinden</strong></li>
<li><a href="http://blog.itws.de/769/debian-von-apache-zu-nginx-teil-5-basic-authentication/">Teil 5: Basic Authentication</a></li>
</ul>
<p>&nbsp;</p>
<p>Ich möchte den Nginx auch auf meinem Notebook verwenden um dort die gleiche Umgebung wie auf dem Server zu haben. Und auch die gleiche Performance.</p>
<p>Da ich aber in der Firma mit dem Tomcat arbeite (den ich zur Zeit über mod_proxy an den Apachen angeklingt habe), muss ich meinen Nginx auch entsprechen konfigurieren. Da die Proxy-Funktionen im Nginx kein Modul sind, sondern der Nginx selbst ein Proxy-Server ist, ist das spielend einfach:</p>
<pre>server {
    server_name ci.itws.de;
    root /var/www/itws.de/ci;

    index index.jsp index.html index.htm;

    proxy_pass http://localhost:8080;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
}</pre>
<h4  class="related_post_title">Ähnliche Artikel</h4><ul class="related_post"><li><a href="http://blog.itws.de/747/debian-von-apache-zu-nginx-teil-1-vorwort/" title="Debian: Von Apache zu Nginx &#8211; Teil 1: Vorwort">Debian: Von Apache zu Nginx &#8211; Teil 1: Vorwort</a></li><li><a href="http://blog.itws.de/895/deployment-von-ruby-on-rails-applikationen/" title="Deployment von Ruby on Rails Applikationen">Deployment von Ruby on Rails Applikationen</a></li><li><a href="http://blog.itws.de/783/wordpress-unter-nginx/" title="Wordpress unter Nginx">Wordpress unter Nginx</a></li></ul> <p><a href="http://blog.itws.de/?flattrss_redirect&amp;id=767&amp;md5=7943e6270e506a271742f8073cb04e9a" title="Flattr" target="_blank"><img src="http://blog.itws.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.itws.de/767/debian-von-apache-zu-nginx-teil-4-einen-tomcat-anbinden/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Debian: Von Apache zu Nginx &#8211; Teil 3: PHP</title>
		<link>http://blog.itws.de/763/debian-von-apache-zu-nginx-teil-3-php/</link>
		<comments>http://blog.itws.de/763/debian-von-apache-zu-nginx-teil-3-php/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 07:10:57 +0000</pubDate>
		<dc:creator>Benny</dc:creator>
				<category><![CDATA[links]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[vps]]></category>

		<guid isPermaLink="false">http://blog.itws.de/?p=763</guid>
		<description><![CDATA[Übersicht Teil 1: Vorwort Teil 2: Installation und Konfiguration Teil 3: PHP Teil 4: Einen Tomcat anbinden Teil 5: Basic Authentication Installation Im Gegenteil zu Apache oder Lighttpd erzeugt nginx selbst keine FastCGI Prozesse. Diese müssen seperat gestartet werden. Hierzu gibt es verschiedene Möglichkeiten. Glücklicherweise bringt PHP5 einen FastCGI Process Manager mit: PHP-FPM. Dieser erzeugt automatisch so viele FastCGI-Prozesse wie in der Umgebungsvariable PHP_FCGI_CHILDREN definiert wurde. Hierfür benötigt man lediglich das Paket php5-cgi und php5-fpm. [...]]]></description>
			<content:encoded><![CDATA[<h1>Übersicht</h1>
<ul>
<li><a href="http://blog.itws.de/747/debian-von-apache-zu-nginx-teil-1-vorwort/">Teil 1: Vorwort</a></li>
<li><a href="http://blog.itws.de/754/debian-von-apache-zu-nginx-teil-2-installation-und-konfiguration/">Teil 2: Installation und Konfiguration</a></li>
<li><strong>Teil 3: PHP</strong></li>
<li><a href="http://blog.itws.de/767/debian-von-apache-zu-nginx-teil-4-einen-tomcat-anbinden/">Teil 4: Einen Tomcat anbinden</a></li>
<li><a href="http://blog.itws.de/769/debian-von-apache-zu-nginx-teil-5-basic-authentication/">Teil 5: Basic Authentication</a></li>
</ul>
<h1>Installation</h1>
<div>Im Gegenteil zu Apache oder Lighttpd erzeugt nginx selbst keine FastCGI Prozesse. Diese müssen seperat gestartet werden. Hierzu gibt es verschiedene Möglichkeiten. Glücklicherweise bringt PHP5 einen FastCGI Process Manager mit: PHP-FPM. Dieser erzeugt automatisch so viele FastCGI-Prozesse wie in der Umgebungsvariable PHP_FCGI_CHILDREN definiert wurde. Hierfür benötigt man lediglich das Paket php5-cgi und php5-fpm.</div>
<div>
<p>Also erstmal alle benötigten Pakete Installlieren:</p>
<pre># apt-get install php5 php5-cli php5-cgi php5-suhosin php5-fpm</pre>
<p>Danach starte ich den Prozess Manager:</p>
<pre># /etc/init.d/php5-fpm restart</pre>
</div>
<div>Jetzt lege ich mir wieder eine Include Datei an für die PHP Konfiguration. Diese muss nämlich nun in jeden location-Block rein. Das möchte ich aber nicht.</div>
<div><span id="more-763"></span></div>
<pre># vim /etc/nginx/enable_php.inc</pre>
<div>
<p>Diese bekommt folgenden Inhalt:</p>
<pre>location ~ \.php$ {
    if (!-f $request_filename) {
        return 404;
    }

    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_pass   backend;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

    include fastcgi_params;

    fastcgi_intercept_errors        on;
    fastcgi_ignore_client_abort     off;
    fastcgi_connect_timeout 60;
    fastcgi_send_timeout 180;
    fastcgi_read_timeout 180;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
}</pre>
</div>
<div>
<p>Diese Datei erhält nun noch Einzug in meine VHost-Configs:</p>
<pre>server {
    server_name itws.de www.itws.de;
    root /var/www/itws.de/www;

    # redirection to blog.itws.de
    rewrite ^(.*) http://blog.itws.de$1 permanent;
}

server {
    server_name blog.itws.de;
    root /var/www/itws.de/blog;

    include defaults.inc;
    include enable_php.inc;
}

server {
    server_name ci.itws.de;
    root /var/www/itws.de/ci;

    include defaults.inc;
    include enable_php.inc;
}</pre>
<p>&nbsp;</p>
<p>Im letzten Schritt muss der http-Block in der nginx.conf noch um einen upstream-Block erweitert werden:</p>
<pre>upstream backend {
    server 127.0.0.1:9000;
}</pre>
<p>Fertig! Nach einem Restart des nginx läuft PHP. Trotz meiner Panik um das Erzeugen der FastCGI Prozesse, alles ziemlich simpel. PHP-FPM sei Dank.</p>
</div>
<h4  class="related_post_title">Ähnliche Artikel</h4><ul class="related_post"><li><a href="http://blog.itws.de/747/debian-von-apache-zu-nginx-teil-1-vorwort/" title="Debian: Von Apache zu Nginx &#8211; Teil 1: Vorwort">Debian: Von Apache zu Nginx &#8211; Teil 1: Vorwort</a></li><li><a href="http://blog.itws.de/783/wordpress-unter-nginx/" title="Wordpress unter Nginx">Wordpress unter Nginx</a></li><li><a href="http://blog.itws.de/769/debian-von-apache-zu-nginx-teil-5-basic-authentication/" title="Debian: Von Apache zu Nginx &#8211; Teil 5: Basic Authentication">Debian: Von Apache zu Nginx &#8211; Teil 5: Basic Authentication</a></li></ul> <p><a href="http://blog.itws.de/?flattrss_redirect&amp;id=763&amp;md5=b7867bd2f8fec37269cc0945de919926" title="Flattr" target="_blank"><img src="http://blog.itws.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.itws.de/763/debian-von-apache-zu-nginx-teil-3-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Debian: Von Apache zu Nginx &#8211; Teil 2: Installation und Konfiguration</title>
		<link>http://blog.itws.de/754/debian-von-apache-zu-nginx-teil-2-installation-und-konfiguration/</link>
		<comments>http://blog.itws.de/754/debian-von-apache-zu-nginx-teil-2-installation-und-konfiguration/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 10:38:14 +0000</pubDate>
		<dc:creator>Benny</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://blog.itws.de/?p=754</guid>
		<description><![CDATA[Übersicht Teil 1: Vorwort Teil 2: Installation und Konfiguration Teil 3: PHP Teil 4: Einen Tomcat anbinden Teil 5: Basic Authentication &#160; Installation Um eine aktuelle Version (1.0.6) auch unter Debian zu bekommen, kann man einfach das dotdeb Repository in die sources.list aufnehmen: dotdeb.org bietet ein umfangreiches Repository um Debian Systeme in perfekte LAMP Server zu verwandeln. Hier ist nicht nur die aktuelle Version von PHP 5.3 mit dem FPM, den ich später noch brauchen [...]]]></description>
			<content:encoded><![CDATA[<h1>Übersicht</h1>
<ul>
<li><a href="/747/debian-von-apache-zu-nginx-teil-1-vorwort/">Teil 1: Vorwort</a></li>
<li><strong>Teil 2: Installation und Konfiguration</strong></li>
<li><a href="http://blog.itws.de/763/debian-von-apache-zu-nginx-teil-3-php/">Teil 3: PHP</a></li>
<li><a href="http://blog.itws.de/767/debian-von-apache-zu-nginx-teil-4-einen-tomcat-anbinden/">Teil 4: Einen Tomcat anbinden</a></li>
<li><a href="http://blog.itws.de/769/debian-von-apache-zu-nginx-teil-5-basic-authentication/">Teil 5: Basic Authentication</a></li>
</ul>
<p>&nbsp;</p>
<h1>Installation</h1>
<p>Um eine aktuelle Version (1.0.6) auch unter Debian zu bekommen, kann man einfach das <a href="http://www.dotdeb.org/" target="_blank">dotdeb</a> Repository in die sources.list aufnehmen:<br />
dotdeb.org bietet ein umfangreiches Repository um Debian Systeme in perfekte LAMP Server zu verwandeln. Hier ist nicht nur die aktuelle Version von PHP 5.3 mit dem FPM, den ich später noch brauchen werde, sondern auch die aktuelle Version des nginx zu finden. Außerdem ist die Default-Konfiguration des Nginx aus dem dotdeb Repo etwas sauberer als die aus dem offiziellen Debian Nginx Repo &#8230;<br />
<span id="more-754"></span></p>
<pre># vim /etc/apt/sources.list</pre>
<pre>deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all</pre>
<p>Danach kurz die Paketliste aktualisieren und den nginx installieren:</p>
<pre># apt-get update
# apt-get install nginx</pre>
<p><span style="color: #ff0000;"> <div style="float: right; width: 200px; margin: 8px;">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-4129785061498511";
/* itws content image */
google_ad_slot = "4724159474";
google_ad_width = 200;
google_ad_height = 200;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></span></p>
<h1>Basis Konfiguration</h1>
<p>Was mir im Konfigurationsverzeichnis des Nginx direkt auffällt sind die beiden Verzeichnisse &#8220;sites-avilable&#8221; und &#8220;sites-enabled&#8221;, welche man ja bereits vom apache kennt.</p>
<p>In der nginx.conf ändere ich folgende Parameter:</p>
<ul>
<li><em>user www-data www-data;</em></li>
<li><em>index index.php index.htm index.html;</em></li>
</ul>
<p>In den http-Block füge ich außerdem noch einige gzip Parameter ein:</p>
<pre>    gzip                    on;
    gzip_comp_level         9;
    gzip_proxied            any;
    gzip_types              text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript image/png image/gif image/jpeg;
    gzip_http_version       1.1;
    gzip_min_length         1000;
    gzip_buffers            16 8k;
    gzip_disable            "MSIE [1-6] \.";
    gzip_vary               on;</pre>
<p>Zusätzlich benötigen wir zwei Include Statements. Ersteres sollte bereits in der nginx.conf enthalten sein. Letzteres benötigen wir für die VHosts:</p>
<pre>include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;</pre>
<p>&nbsp;</p>
<h1>Virtuelle Hosts konfigurieren</h1>
<p>Im <em>sites-aviable</em> Verzeichnis benenne ich die Datei &#8220;<em>default</em>&#8221; in &#8220;<em>itws.de</em>&#8221; um und füge folgenden Inhalt ein:</p>
<pre>server {
    server_name itws.de www.itws.de;
    root /var/www/itws.de/www;

    # redirection to blog.itws.de
    rewrite ^(.*) http://blog.itws.de$1 permanent;
}

server {
    server_name blog.itws.de;
    root /var/www/itws.de/blog;

    location / {
        try_files $uri $uri/ /index.php /index.html;
    }

    location ~ /\.ht {
        deny all;
    }

     location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
         access_log off;
         expires 30d;
         root /var/www;
     }
}

server {
     server_name ci.itws.de;
     root /var/www/itws.de/ci;

     location / {
         try_files $uri $uri/ /index.php /index.html;
     }

     location ~ /\.ht {
         deny all;
     }

     location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
         access_log off;
         expires 30d;
         root /var/www;
     }
}</pre>
<p>Im <a href="http://wiki.nginx.org/Configuration" target="_blank">Wiki</a> gibts mehr Beispiele, Parameter und Dokumentation.</p>
<p>Danach gibts noch eine Datei yaana.de mit ähnlichem Inhalt.</p>
<p>Im Anschluss daran müssen beide Konfigurationen aktiviert werden:</p>
<pre># ln -s /etc/nginx/sites-available/itws.de /etc/nginx/sites-enabled/itws.de
# ln -s /etc/nginx/sites-available/yaana.de /etc/nginx/sites-enabled/yaana.de</pre>
<p>Diese Konfiguration kann ich mit 2-3 statischen Hallo-Welt-Dateien schonmal testen.<br />
Funktioniert einwandfrei.</p>
<p>Jetzt möchte ich aber nicht jedes Mal diese ganzen location-Blöcke in jedem VHost haben. Deswegen lege ich mir eine Include Datei hierfür an:</p>
<pre># vim /etc/nginx/defaults.inc</pre>
<p>Diese erhält folgenden Inhalt:</p>
<pre>location / {
    try_files $uri $uri/ /index.php /index.html;
}

location ~ /\. {#
    access_log off;
    log_not_found off;
    deny all;
}

location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
    access_log off;
    expires 30d;
}

location ~ (\.inc\.php|\.tpl|\.sql|\.tpl\.php|\.db)$ {
    deny all;
}</pre>
<p>Nun ändere ich meine VHost Konfigurationen entsprechend ab:</p>
<pre>server {
    server_name itws.de www.itws.de;
    root /var/www/itws.de/www;

    # redirection to blog.itws.de
    rewrite ^(.*) http://blog.itws.de$1 permanent;
}

server {
    server_name blog.itws.de;
    root /var/www/itws.de/blog;

    Include defaults.inc;
}

server {
     server_name ci.itws.de;
     root /var/www/itws.de/ci;

     Include defaults.inc;
}</pre>
<p>Perfekt! Weniger Konfiguration als im Apache, aber mehr Performance <img src='http://blog.itws.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4  class="related_post_title">Ähnliche Artikel</h4><ul class="related_post"><li><a href="http://blog.itws.de/747/debian-von-apache-zu-nginx-teil-1-vorwort/" title="Debian: Von Apache zu Nginx &#8211; Teil 1: Vorwort">Debian: Von Apache zu Nginx &#8211; Teil 1: Vorwort</a></li><li><a href="http://blog.itws.de/783/wordpress-unter-nginx/" title="Wordpress unter Nginx">Wordpress unter Nginx</a></li><li><a href="http://blog.itws.de/769/debian-von-apache-zu-nginx-teil-5-basic-authentication/" title="Debian: Von Apache zu Nginx &#8211; Teil 5: Basic Authentication">Debian: Von Apache zu Nginx &#8211; Teil 5: Basic Authentication</a></li></ul> <p><a href="http://blog.itws.de/?flattrss_redirect&amp;id=754&amp;md5=3d8502770f4ac886ca53afaba114c1b6" title="Flattr" target="_blank"><img src="http://blog.itws.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.itws.de/754/debian-von-apache-zu-nginx-teil-2-installation-und-konfiguration/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Debian: Von Apache zu Nginx &#8211; Teil 1: Vorwort</title>
		<link>http://blog.itws.de/747/debian-von-apache-zu-nginx-teil-1-vorwort/</link>
		<comments>http://blog.itws.de/747/debian-von-apache-zu-nginx-teil-1-vorwort/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 09:11:52 +0000</pubDate>
		<dc:creator>Benny</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[vps]]></category>

		<guid isPermaLink="false">http://blog.itws.de/?p=747</guid>
		<description><![CDATA[Übersicht Teil 1: Vorwort Teil 2: Installation und Konfiguration Teil 3: PHP Teil 4: Einen Tomcat anbinden Teil 5: Basic Authentication &#160; In diesem und den folgenden Beiträgen (es gibt jeden Tag einen) berichte ich euch ein wenig über meine Migration von Apache zu Nginx. Es war eigentlich nicht beabsichtigt, dass da ganze fünf Beiträge draus werden, aber irgendwie wurde es doch ziemlich viel Text und das war dann für einen einzelnen Artikel etwas zu [...]]]></description>
			<content:encoded><![CDATA[<h1>Übersicht</h1>
<ul>
<li><strong>Teil 1: Vorwort</strong></li>
<li><a href="http://blog.itws.de/754/debian-von-apache-zu-nginx-teil-2-installation-und-konfiguration/">Teil 2: Installation und Konfiguration</a></li>
<li><a href="http://blog.itws.de/763/debian-von-apache-zu-nginx-teil-3-php/">Teil 3: PHP</a></li>
<li><a href="http://blog.itws.de/767/debian-von-apache-zu-nginx-teil-4-einen-tomcat-anbinden/">Teil 4: Einen Tomcat anbinden</a></li>
<li><a href="http://blog.itws.de/769/debian-von-apache-zu-nginx-teil-5-basic-authentication/">Teil 5: Basic Authentication</a></li>
</ul>
<p>&nbsp;</p>
<p>In diesem und den folgenden Beiträgen (es gibt jeden Tag einen) berichte ich euch ein wenig über meine Migration von Apache zu Nginx. Es war eigentlich nicht beabsichtigt, dass da ganze fünf Beiträge draus werden, aber irgendwie wurde es doch ziemlich viel Text und das war dann für einen einzelnen Artikel etwas zu viel. Da könnte man ja fast den Eindruck bekommen, ich würde gerne schreiben &#8230; Keine Angst, das einzige was ich gerne in großen Mengen schreibe ist Programmcode <img src='http://blog.itws.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>However, ich hatte meinen VPS (Debian 6) bisher immer mit dem apache2 betrieben und auch meine Entwicklungsumgebung auf meinem Desktop und dem Notebook ebenfalls. Das hatte mehrere Gründe. Zum Einen bin ich mit dem Apache aufgewachsen und hatte eigentlich nie etwas anderes verwendet. Ich war auch immer sehr zufrieden mit dem Apachen. Es ist ein guter Webserver mit einer großen Auswahl an mächtigen Modulen und er ist sehr leicht zu konfigurieren. Da ich aber ab und an gerne etwas Neues ausprobiere und immer Spaß daran habe, an meinem Server zu schrauben (auf Software-Ebene), wollte ich mal einen anderen Webserver ausprobieren. Genaugenommen war das Projekt yaana.de einer der Auslöser. Ich möchte da noch etwas Performance aus dem Server quetschen. Und dafür sollte ich mich zu allererst vom Apachen verabschieden.</p>
<p>Zur Auswahl stehen also &#8211; neben dem Apachen &#8211; Lighttpd und Nginx (ausgesprochen: engine-x).</p>
<p><span id="more-747"></span></p>
<p>Zu allererst ein kurzer Überblick der Vor- und Nachteile der drei Kontrahenten: Apache, Lighttpd und Nginx:</p>
<h2></h2>
<h1>Der Apache</h1>
<h2>Vorteile</h2>
<ul>
<li><strong><span class="Apple-style-span" style="font-size: 13px;">Open Source &amp; Kostenlos</span></strong></li>
<li><strong>Community</strong>. Apache ist der am meist verbeiteste Webserver, die Community dahinter ist entsprechend gigantisch.</li>
<li><strong>Module</strong>. Es gibt unzählige Module für den Apache um praktisch jede Funktionalität abzudecken</li>
</ul>
<p>&nbsp;</p>
<h2>Nachteile</h2>
<ul>
<li><strong>Performance</strong>. Der Apache ist um einiges langsamer als seine Konkurenten. Vor Allem wenn es um das Ausliefern von statischen Dateien geht.</li>
<li><strong>Stabilität</strong>. Der Webserver hat schon mit schwachen DoS/DDoS Attacken Probleme, der Arbeitsspeicher (und das Logverzeichnis) verbrauchen innerhalb kurzer Zeit viel Speicher.</li>
<li><strong>Veraltet und überfüllt</strong>. Außerdem ist die Standard Konfiguration meistens nicht optimal und muss angepasst werden.</li>
<li>Die <strong>Entwicklung</strong> läuft vergleichsweise <strong>langsam</strong>.</li>
</ul>
<p>&nbsp;</p>
<p><span style="color: #ff0000;"> <div style="float: right; width: 200px; margin: 8px;">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-4129785061498511";
/* itws content image */
google_ad_slot = "4724159474";
google_ad_width = 200;
google_ad_height = 200;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></span></p>
<h1>Der Lighttpd</h1>
<h2>Vorteile</h2>
<ul>
<li><strong>Open Source &amp; Kostenlos</strong></li>
<li><strong>Leichtgewichtig</strong>. In Version 1.4.13 benötigt der Lighty nicht mehr als 2Mb RSS auf einem VPS. Ein einzelner Prozess erledigt alles, selbst wenn 100 Connections eingehen.</li>
<li><strong>Geschwindigkeit</strong>. Die Auslieferung von statischen Dateien geschieht mit einer unglaublichen Geschwindigkeit. Das FastCGI und das Proxy Serving ist ebenfalls rasant schnell.</li>
<li><strong>Module</strong>. Es gibt gefühlt unendlich viele Module mit einer guten Dokumentation.</li>
<li><strong>Mod_magnet</strong> ist eine Scripting Engine direkt im Webserver. Das Modul integriert Lua in lighttpd.</li>
<li><strong>Community</strong>. Einen Blog, ein Wiki/bug tracker und ein Forum. Hier findet man immer Hilfe</li>
</ul>
<p>&nbsp;</p>
<p><span class="Apple-style-span" style="font-size: 20px; font-weight: bold;">Nachteile</span></p>
<ul>
<li><strong>Geringe Stabilität</strong> gerade was HTTPS+Proxy in Kombination mit Python oder Ruby angeht.</li>
<li><strong>Kein Mod_rewrite</strong>. Die Built-in rewriting engine ist Schrott, und das Portieren der Apache mod_rewrite Regeln ist nicht ganz einfach.</li>
<li><strong>Memory leaks</strong>. Und diese wurden seither nicht gefixed.</li>
<li>Die <strong>Entwicklung</strong> läuft vergleichsweise <strong>langsam</strong>.</li>
</ul>
<p>&nbsp;</p>
<h1>Nginx</h1>
<h2>Vorteile</h2>
<ul>
<li><strong>Open Source &amp; Kostenlos</strong></li>
<li><strong>Leichtgewichtig</strong>. Zwar nicht ganz so leicht wie der Lighty, aber dennoch nicht so Ressourcenhungrig wie der Apache.</li>
<li><strong>Schnell</strong>. Einie benchmarks haben gezeigt, dass Nginx deutlich schneller ist als der Lighty und der Apache. Gerade was die Auslieferung von statischen Inhalten angeht.</li>
<li><strong>Module</strong>. Ähnlich wie bei den beiden anderen Kontrahenten gibt es auch hier mehr Module als man benötigt. Während Lighttpd eine Lua scripting engine besitzt, kann man den Nginx mit dem Perl Interpreter aufmotzen.</li>
<li><strong>Besseres Rewrite Modul</strong>. Ein sehr viel besseres Rewrite Modul als Lighttpd mit komplexen Bedinungen. Das Portieren von mod_rewrite Regeln vom Apache ist vergleichsweise einfach.</li>
<li><strong>Stabil</strong> und keine leaks. Keine Probleme bekannt.</li>
<li>Sehr <strong>schnelle Entwicklung</strong>: Es gibt fast monatlich Updates</li>
<li>Die <strong>Konfiguration</strong> ist <strong>einfach</strong> und übersichtlich.</li>
</ul>
<h2>Nachteile</h2>
<ul>
<li><strong>Kleine Community</strong>. Es gibt einen IRC und ein Wiki. Dann wirds auch schon eng.</li>
<li>Nginx kann <strong>keine FastCGI Prozesse</strong> erstellen. Das muss dann über einen externen fcgi spawner geschehen.</li>
</ul>
<p>&nbsp;</p>
<p><span style="color: #ff0000;"> <div style="float: right; width: 200px; margin: 8px;">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-4129785061498511";
/* itws content image */
google_ad_slot = "4724159474";
google_ad_width = 200;
google_ad_height = 200;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></span></p>
<p>Der Lighttpd kam bei mir eigentlich nie wirklich in Frage. Das hatte zwei Gründe:</p>
<ol>
<li>Ist die Konfiguration wirklich hässlich <img src='http://blog.itws.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Sorry aber ich bin da etwas sensibel.</li>
<li>Weil der Lighttpd ein paar Memory Leaks hat, die seit Jahren nicht gefixt werden.</li>
<li>Hatte ich mir bereits vor längerer Zeit die Rewrite Rules vom Lighty angesehen &#8211; eher durch Zufall darauf gestoßen und dann aus Neugierde recheriert &#8211; das hat mich direkt abgeschreckt.</li>
</ol>
<p>Also fällt auf meine Wahl auf den hochangepriesenen Nginx Proxy-/WebServer, mit dem mittlerweile rund 7% des World Wide Webs betrieben werden. Darunter high-visibility Platformen wie <a href="http://wordpress.com" target="_blank">WordPress.com</a>, <a href="http://github.com" target="_blank">Github</a>, <a href="http://www.ohloh.net/" target="_blank">Ohloh</a>, <a href="sourceforge.net" target="_blank">SourceForge</a>, <a href="http://www.golem.de/" target="_blank">Golem.de</a> uvm. Außerdem verspricht dieser nicht nur mehr Performance sondern auch eine einfachere Konfiguration.</p>
<p>Auch wenn mich der Part mit dem FastCGI Prozessen etwas nerven wird. Mal sehen vielleicht finde ich dafür ja noch eine saubere Lösung.</p>
<p>&nbsp;</p>
<h1>Anforderungen</h1>
<p>Ich habe natürlich einige Anforderungen an den Webserver. Damit ich meinen Server migrieren kann, benötige ich folgende Funktionen:</p>
<ul>
<li>RewriteRules für .htaccess files</li>
<li>Basic Authentication</li>
<li>Virtuelle Hosts</li>
<li>PHP</li>
<li>Einen Proxy um den Java Webserver dahinter anzubinden</li>
</ul>
<p>Nginx ist nicht nur ein Webserver sondern auch ein POP3/IMAP-Proxy und ein reverse Proxy. Letzteres Problem war also schonmal gar kein Thema weil der Server einfach exakt für solche Dinge designed wurde. Auch Mongrel lässt sich sehr sehr gut mit Nginx betreiben, wie ich gelesen habe.</p>
<p>PHP lässt sich über FastCGI anbinden, was deutlich performanter ist als mod_php für den Apachen, da PHP somit nicht bei jedem Request mitgestartet wird. Was mir hier noch etwas Sorgen bereitet, ist das nicht vorhandene Feature vom Nginx, FastCGI Prozesse zu starten. Glücklichwerweise bringt PHP5 einen eigenen FastCGI Prozess Manager mit sich: PHP-FPM. Das erleichtert die Anbindung von PHP ungemein.</p>
<p>Virtuelle Hosts, Basic Authtentication und RewriteRules sind für moderne Webserver ohnehin bereits Standardumfang. Und die Rewrite Rules von Nginx sehen sogar ganz brauchbar aus (wenn es um das Portieren von  mod_rewrite Regeln geht). Sollte also alles kein Thema sein.</p>
<p>Bleibt noch eine kleine Anforderung: Die Verzeichnis-Struktur. Meine bisherige Verzeichnis-Struktur sieht wie folgt aus:</p>
<p><em>/var/www/hostname/subdomain/</em></p>
<p>Entsprechend gibt es folgende Verzeichnisse:</p>
<ul>
<li><em>/var/www/itws.de/blog</em></li>
<li><em>/var/www/itws.de/ci</em></li>
<li><em>/var/www/yaana.de/www</em></li>
<li><em>/var/www/yaana.de/blog</em></li>
</ul>
<p>Und einige mehr.</p>
<p>Diese Struktur will ich natürlich beibehalten. Es hätte mich nun gewundert, wenn das nicht gehen würde. Nach kurzer Recherche, war ich mir sicher, dass das kein Thema sein wird.</p>
<p>&nbsp;</p>
<p>Es kann also los gehen.</p>
<h4  class="related_post_title">Ähnliche Artikel</h4><ul class="related_post"><li><a href="http://blog.itws.de/763/debian-von-apache-zu-nginx-teil-3-php/" title="Debian: Von Apache zu Nginx &#8211; Teil 3: PHP">Debian: Von Apache zu Nginx &#8211; Teil 3: PHP</a></li><li><a href="http://blog.itws.de/767/debian-von-apache-zu-nginx-teil-4-einen-tomcat-anbinden/" title="Debian: Von Apache zu Nginx &#8211; Teil 4: Einen Tomcat anbinden">Debian: Von Apache zu Nginx &#8211; Teil 4: Einen Tomcat anbinden</a></li><li><a href="http://blog.itws.de/754/debian-von-apache-zu-nginx-teil-2-installation-und-konfiguration/" title="Debian: Von Apache zu Nginx &#8211; Teil 2: Installation und Konfiguration">Debian: Von Apache zu Nginx &#8211; Teil 2: Installation und Konfiguration</a></li></ul> <p><a href="http://blog.itws.de/?flattrss_redirect&amp;id=747&amp;md5=8201e70428a2058e9de81809355a6725" title="Flattr" target="_blank"><img src="http://blog.itws.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.itws.de/747/debian-von-apache-zu-nginx-teil-1-vorwort/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

