{"id":3014,"date":"2011-09-13T19:36:20","date_gmt":"2011-09-13T17:36:20","guid":{"rendered":"https:\/\/nodch.de\/?p=3014"},"modified":"2011-09-22T17:18:04","modified_gmt":"2011-09-22T15:18:04","slug":"wordpress-webseite-mit-nginx-auf-ubuntu-server-beschleunigen","status":"publish","type":"post","link":"https:\/\/nodch.de\/?p=3014","title":{"rendered":"WordPress Webseite mit Nginx auf Ubuntu Server beschleunigen"},"content":{"rendered":"<p><a href=\"https:\/\/nodch.de\/wp-content\/uploads\/nginx-logo1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-thumbnail wp-image-3053\" src=\"https:\/\/nodch.de\/wp-content\/uploads\/nginx-logo1-300x90.png\" alt=\"\" width=\"300\" height=\"90\" \/><\/a>Das Internet wird jeden Tag gr\u00f6\u00dfer und schneller, und jede Webseite oder jedes Blog, das eine hohe Reichweite hat kennt das Problem: Der Traffic zwingt irgendwann den Server in die Knie. Nun steht man vor der Wahl: Hat man die finanziellen Mittel, besorgt man sich neue Hardware, denn je besser ein WebServer ist, umso mehr Anfragen kann er gleichzeitig bearbeiten. Zus\u00e4tzlich kann man auch die<strong> WebSeite optimieren<\/strong>, also <strong>CSS Dateien zusammen<\/strong> fassen, <strong>Bilder in Sprites<\/strong> packen und wenn m\u00f6glich sogar <strong>Javascript zusammentun<\/strong>, beziehungsweise auslagern und <strong>statischer Content<\/strong> kann mit einer Cache-Zeit von \u00fcber 30 Tagen ausgestattet werden. Nur was ist, wenn all das absolut nicht mehr klappt?<\/p>\n<p>Dies ist uns passiert, die Besucherzahlen liefen stabil nach oben und Google hat uns sehr gut platziert. Um genau zu sein auf Platz 1 der Newskategorie &#8222;Technik\/Wissenschaft&#8220;, direkt in der Schlagzeilen\u00fcbersicht auf der news.google.de Startseite, \u00a0was zwar wirklich toll war, nur lieferte uns Google in diesem Moment <strong>mehr als 250 Anfragen<\/strong> &#8230; pro Sekunde. Unser sowieso schon angeschlagener <strong>Apache2<\/strong> brach gnadenlos zusammen, ohne das wir was tun konnten. Der ganze Spa\u00df wiederholte sich noch 2 mal und wir versuchten herauszufinden warum. Ich muss dazu sagen, dass <strong>unser Server mit 2 CPUs ausgestattet ist und \u00fcber 8 GB RAM verf\u00fcgt<\/strong> und au\u00dfer nodch.de nichts anderes auf der Hardware lief. Wir kamen relativ schnell zu dem Entschluss, dass Apache schuld ist. Der Server stand permanent unter Dauerlast, der Arbeitsspeicher jedoch f\u00fchlte sich unn\u00fctz. Man sollte sich also genau fragen wo Flaschenh\u00e4lse sind: Hardware, Software oder die Serversoftware.<\/p>\n<p>Wir haben uns dazu entschieden Apache abzusetzen und durch <strong><a href=\"http:\/\/nginx.org\/\" target=\"_blank\">Nginx<\/a><\/strong> (gesprochen: &#8222;Engine X&#8220;) zu ersetzen. Nginx bezeichnet sich selbst als &#8222;high performance web server&#8220; der effektiver als Apache arbeitet und dabei sogar weniger Speicher verbraucht. Installation, Einrichtung und Gebrauch sind ebenso einfach wie bei Apache.<\/p>\n<p><strong>G\u00e4ngige Apache Konfigurationen<\/strong> sehen in der Regel immer gleich aus:<a href=\"https:\/\/nodch.de\/wp-content\/uploads\/lamp-logo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-3054\" src=\"https:\/\/nodch.de\/wp-content\/uploads\/lamp-logo.png\" alt=\"\" width=\"250\" height=\"150\" \/><\/a><\/p>\n<p>Es l\u00e4uft ein Apache2 Server in mehreren Instanzen, PHP und MySQL Modul sind einkompiliert und werden als Extension geladen. Es werden vhosts definiert und gr\u00f6\u00dftenteils werden per .htaccess Datei spezifische Einstellungen vorgenommen.<\/p>\n<p>Genau da liegt das Problem: Ist beispielsweise PHP mit einkompiliert, wird PHP bei\u00a0<strong>jedem<\/strong> Request an den Server geladen, was unter dem Strich <strong>enorm Ressourcen nutzt<\/strong>. Apache wertet au\u00dferdem .htaccess Daten mit jedem Request neu aus. Jeder kann sich selbst zusammenreimen was passiert wenn da mehr als 100 Anfragen pro Sekunde reinkommen und die Hardware eher normal ist. \ud83d\ude42<\/p>\n<p>Nginx ist im Vergleich zu Apache jetzt nicht das Torschlagargument, aber die Unterschiede sind schon deutlich. Grade wenn es um statischen Content geht, ist Nginx um einiges schneller als Apache. PHP wird in Nginx per FastCGI angebunden, was den Vorteil hat, dass die PHP Worker gespawnt im System liegen und nur auf Arbeit warten. Nginx kann so konfiguriert werden, dass PHP nur ausgef\u00fchrt werden soll, wenn es denn auch n\u00f6tig ist. Apache mit FastCGI zu verwende ist zwar auch m\u00f6glich, nur nutzen das leider die Wenigsten.<\/p>\n<p>Ich m\u00f6chte euch in einer kleinen HowTo-Reihe die Einrichtung von Nginx auf Ubuntu zeigen und erkl\u00e4ren wie die verborgene Performance der Hardware optimal genutzt werden kann. Dabei beziehe ich mich auf eine WordPress Installation. Ich pers\u00f6nlich bin Begeistert vom enormen Performancesprung von nodch.de, den wir mit dieser Konfiguration erreichen konnten.<\/p>\n<p><strong>Wie das alles im Detail funktioniert, installiert und eingerichtet wird, wollen wir euch nat\u00fcrlich nicht vorenthalten!<\/strong><\/p>\n<p>[sws_divider_top]<\/p>\n<p><em><a title=\"WordPress Webseite mit Nginx auf Ubuntu Server beschleunigen\" href=\"https:\/\/nodch.de\/wordpress-webseite-mit-nginx-auf-ubuntu-server-beschleunigen\/3014\/\">Teil 0: Einf\u00fchrung<\/a><\/em><br \/>\n<a title=\"HowTo: Installation der aktuellen Nginx-Version auf Ubuntu\" href=\"https:\/\/nodch.de\/howto-installation-der-aktuellen-nginx-version-auf-ubuntu\/3029\/\"> Teil I: Installation der aktuellen Nginx-Version auf Ubuntu<\/a><br \/>\n<a title=\"HowTo: Installation von MySQL und PHP auf Ubuntu Server\" href=\"https:\/\/nodch.de\/howto-installation-von-mysql-und-php-auf-ubuntu-server\/3030\/\"> Teil II: Installation von MySQL und PHP<\/a><br \/>\n<a title=\"Nginx konfigurieren und PHP als FastCGI bereitstellen\" href=\"https:\/\/nodch.de\/nginx-konfigurieren-und-php-als-fastcgi-bereitstellen\/3087\/\">Teil III: Nginx konfigurieren und PHP als FastCGI bereitstellen<\/a><br \/>\n&#8211; Alternativ: PHP-FPM Installieren und bereitstellen (folgt !)<br \/>\nTeil IV: Nginx f\u00fcr WordPress optimieren<\/p>\n<p>Ich versuche \u00fcbrigens jeden Tag mindestens einen Artikel zu Reihe zu ver\u00f6ffentlichen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das Internet wird jeden Tag gr\u00f6\u00dfer und schneller, und jede Webseite oder jedes Blog, das eine hohe Reichweite hat kennt das Problem: Der Traffic zwingt irgendwann den Server in die Knie. Nun steht man vor der Wahl: Hat man die finanziellen Mittel, besorgt man sich neue Hardware, denn je besser ein WebServer ist, umso mehr [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[682,142],"tags":[583,1611,1612,2485,1610,333,1584,1582,1583,2481,2482],"class_list":["post-3014","post","type-post","status-publish","format-standard","hentry","category-howto","category-ubuntu","tag-anleitung","tag-beispiel","tag-fast-cgi","tag-howto","tag-installation","tag-linux","tag-mysql","tag-nginx","tag-php","tag-ubuntu","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/nodch.de\/index.php?rest_route=\/wp\/v2\/posts\/3014","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nodch.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nodch.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nodch.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nodch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3014"}],"version-history":[{"count":0,"href":"https:\/\/nodch.de\/index.php?rest_route=\/wp\/v2\/posts\/3014\/revisions"}],"wp:attachment":[{"href":"https:\/\/nodch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nodch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nodch.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}