ngingx vs. apache - oder beides

pilgrims

Member
Liebe ISPConfig-Mitnutzer,

ich bin gerade dabei eine neue Maschine aufzusetzen und überlege ngingx statt apache zu verwenden. Bei meinen Recherchen stoße ich immer wieder auf die Empfehlung, dass man beides verwenden solle: nginx spielt als Reverse Proxy seine Stärke aus, apache für dynamische Websites.
Wenn ich es richtig verstehe, vorneweg steht nginx und dann kommt der apache als backend-Server. Aber mir fehlt hier noch die Idee, wie das gemacht werden kann und vor allem, ob ISPConfig das verwalten kann.

Hat jemand mit dem gleichzeitigen Betrieb und in solcher Konzeption Erfahrung? Die Meinung der geschätzten ISPConfig-Experten interessiert mich natürlich auch.

VG
 

Till

Administrator
Nginx + Apache geht nicht mit ISPConfig. Also entweder Apache oder Nginx. Generell ist reines Nginx auch schneller als Apache + Nginx, ich persönlich nutze nur noch Nginx bei neuen Servern. Ob das was für Dich ist hängt davon ab ob es Dir etwas ausmacht dass Du ggf. eine vorliegen .htaccess datei in eine passende Nginx config konvertieren musst, für ein CMS.
 

matz

Active Member
Ich nutze auch nur noch Nginx mit php-fpm und bedaure nichts. Als CMS fungiert bei mir WordPress und die .htaccess habe ich nicht vermisst, nur die sind bei mir einfach gestrickt. Für dynamische Inhalte bietet Nginx den PHP-Cache, die Einrichtung war simpel und ließ sich leicht ergoogeln. Es gibt sinnvolles Zeug auf nginx.org (bzw nginx.com) und Wordpress schreibt auch etwas dazu. Load-Tests mit Jmeter zeigten, dass der PHP-Cache die Sache um das 4-5fache beschleunigt. Nginx bietet auch die Aktivierung von HTTP/2 out of the Box.

Mit Nginx als Reverse-Proxy für Apache hatte ich zu tun. Statt ISPC gab's Plesk Obsidian. Es hat gut funktioniert aber mir war es zu viel und manchmal war Problemlösung kompliziert, weil alles sehr komplex war.
 

matz

Active Member
Bei mir sieht es so aus:
In der /etc/nginx/conf.d habe ich eine kleine 000-meine-website.conf-Datei mit folgendem Inhalt erstellt:
Code:
fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=WORDPRESS:500m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
add_header X-Cache $upstream_cache_status;

Im ISPC in den Optionen der Website steht folgende Direktive:
Code:
#Cache everything by default
set $no_cache 0;

#Don't cache POST requests
if ($request_method = POST)
{
    set $no_cache 1;
}

#Don't cache if the URL contains a query string
if ($query_string != "")
{
    set $no_cache 1;
}

#Don't cache the following URLs
if ($request_uri ~* "/(administrator/|login.php)")
{
    set $no_cache 1;
}

#Don't cache if there is a cookie called PHPSESSID
if ($http_cookie = "PHPSESSID")
{
    set $no_cache 1;
}
location @php { ##merge##
    fastcgi_cache_bypass $no_cache;
    fastcgi_no_cache $no_cache;  
    fastcgi_cache WORDPRESS;
    fastcgi_cache_valid 200 60m;  
}

location / { ##merge##
    try_files $uri $uri/ /index.php?$args;
    if (!-e $request_filename) {
         rewrite ^(.+)$ /index.php?q=$1 last;
     }
}

Das hat die Geschwindigkeit um das erwähnte 4-5fache erhöht, HTTP/2 trägt auch seinen Teil dazu bei. Mit Wordpress kann man das ohne viel Aufwand testen. Einfach irgendein aktuelles Theme aktivieren und einige neue Blogbeiträge mit gefühlt 10 Tonnen Lorem ipsum füllen. Das lässt die Datenbank etwas schuften und der Cache füllt sich. Beim Load-Test mit Jmeter eine großzügige Hochlauf-Rampe einstellen (so um die 20-30s) und die "Angreifer"-Anzahl entsprechend den Server-Möglichkeiten einstellen. Bei mir reichen 500 gleichzeitig damit alles fehlerfrei läuft, bis 1500 ist es noch verträglich. Verzichte ich auf HTTPest und verwende HTTP dann sind 2000 so gut wie fehlerfrei und ich erreiche 900-950 saubere Anfragen per Sekunde. Bei meinem mickrigen Server kann ich damit sehr gut leben.
 
Zuletzt bearbeitet:

Till

Administrator
Hallo matz, ich habe mal eine Kopie Deines Posts im Tipps & Tricks Forum mit passendem Titel abgelegt, dann findet man den einfacher wieder. ist sicherlich interessanr für viele Nutzer.
 

matz

Active Member
/wp-admin würde ich auch noch aus dem cache rausnehmen
Bin ganz bei dir, nur diese Site läuft nicht im Production Mode, es ist eine meiner Spielwiesen. Diese (insgesamt 3) liegen alle in geschützten Ordern. Ich werde allerdings den wp-admin-no-cache als Kommentar hinzufügen. Dieser Server ist mein Hobby und mein Mail-Server. An hohen Besucherzahlen/Zeiteinheit bin ich z.Zt. nicht interessiert.

Hallo matz, ich habe mal eine Kopie Deines Posts im Tipps & Tricks Forum mit passendem Titel abgelegt, dann findet man den einfacher wieder. ist sicherlich interessanr für viele Nutzer.
Das geht voll und ganz in Ordnung und es wäre gut wenn es dem Einen oder Andren etwas nützt..Habe eben noch ein Typo in der 2. Zeile beseitigt. Es soll 000-meine-website.conf heißen und nicht 000.meine-website.conf.
 

Werbung

Top