[Debian] ISPConfig 3 Multiserver Setup mit nginx als Reverse Proxy für Apache

maja437

Member
Hallo zusammen, ich möchte ein ISPConfig 3 Multiserver Setup auf Debian 10 für den Betrieb einer recht großen "Video-Website" (ähnlich wie YouTube / Udemy mit Videoturoials) aufbauen. Ich benötige nur Webserver + Datenbankserver. Apache als reiner Webserver ist zu langsam, daher soll nginx als Reverse Proxy für Apache dienen.

Sind die von mir gefundenen Tutorials noch aktuell und lassen sie sich noch so durchführen?
Ich weiß nicht wann diese erstellt wurden:


Hat jemand schon mal sowas gemacht und kann zeigen wie man am besten macht?
Über Tipps & Anregungen jeglicher Art würde ich mich freuen.
 

nowayback

Well-Known Member
Ich verstehe die Anforderung nicht. Wenn der Apache zu langsam ist, warum soll der nginx, der die Daten beim Apache abholt, das ganze beschleunigen?
 

nowayback

Well-Known Member
ja das ist korrekt, aber der nginx fragt die daten beim apache ab... damit ist immernoch die leistung des apaches dein limit
 

maja437

Member
Nginx soll statische Inhalte ausliefern, also als Caching-Server ähnlich wie Varnish fungieren. In unseren Tests hat das gut funktioniert, leider kann man die Website ohne große Änderungen nicht direkt auf Nginx betreiben also geht es wohl nur so.
 

matz

Active Member
Till hat irgendwo hier geschrieben, dass ISPC die Option Apache + Nginx-Reverse-Proxy nicht unterstützt. Das heißt für dich, dass du auf Gedeih und Verderb der Try and Error Vorgehensweise ausgeliefert bist. Ich sage jetzt schon, dass das geht aber weiß nicht wie. ISPC ist Open Source und lässt sich nach Belieben umbauen, wovon ich eher abrate.

Die erste von dir verlinkte Anleitung ist schon angestaubt, denn es gibt Installationsskript für ISPC und da geht alles automatisch.
Die zweite ist für einen einen Webserver ohne Verwaltungsoberfläche. Kann man machen, wird so wie es dort steht laufen aber dann macht ALLES von Hand.

Ich habe meinen Server schon auf nginx umgestellt und trauere dem Apachen nicht nach. Wenn du unbedingt nginx als Reverse-Proxy mit seinem Caching brauchst: Plesk kann das. Plesk ist allerdings riesig, komplex, Fehler sind oft schwer nachvollziehbar und Plesk kostet Geld. Den Nginx muss man da noch ggf. selbst konfigurieren. Beruflich war ich mit Plesk unterwegs ( ~60€/Monat und Server) und ich mag das Ding nicht unbedingt. Kann viel, bietet viel. man kann damit (gut) arbeiten und es kann astronomisch viel nerven. Das Caching ist ok aber mein kleiner Server mit ISPC und Nginx-only (auch mit Caching) ist leichtfüßiger.

Wie nowayback schon schrieb, Nginx + Apache ist eher ein Mittelding, so wie in den 80ern Honda Gold Wing, ein Motorrad für Leute, die sich nicht zwischen Auto und Motorrad entscheiden konnten. NetFlix hat nicht umsonst auf Nginx-only umgestellt ;)
 

maja437

Member
?? Im Zweifel musst Dir da nur die passenden Direktiven basteln.
Ist kein Standard-CMS wie WordPress, Drupal, Magento & Co. von daher ist das nicht möglich, dass war meine erste Idee. Konverter / Tutorials zum Thema gibt's ja mehr als genug. Auch wird .htaccess-Passwortschutz tausende male auf der Website verwendet, dass kann man nicht einfach so nginx machen.

Wäre mir lieber wenn das direkt auf Nginx-only läuft, bei einer neuen Website würden wir das auch grundsätzlich so machen, ist aber in diesem Fall nicht möglich.

Danke für den Hinweis mit Plesk, werde ich mir mal ansehen, würde das aber trotzdem liebendgerne mit ISPConfig hinbekommen.
 

matz

Active Member
Passwortschutz mit ISPC und Nginx ist ganz einfach. Man legt einen geschützten Ordner an und ISPC macht den Rest. Der Eintrag in der Konfig-Datei sieht nachher z.B. so aus:
Code:
location / {
             if (!-e $request_filename) {
                 rewrite ^(.+)$ /index.php?q=$1 last;
             }
                auth_basic "Members Only";
                auth_basic_user_file /var/www/clients/client0/web14/web/.htpasswd;
        
                location ~ \.php$ {
                    try_files /98a94fdeabdca9568d01cf255e7ed6e7.htm @php;
                }
.htaccess ist übrigens einer der Hauptgrüde dafür, warum Nginx den Apachen noch nicht vom Markt verdrängt hat - etwas übertrieben gesagt. Gerade die riesigen Wordpress-Projekte mit großen .htaccess-Files habe es da ganz schwer. Deswegen lief damals in meinem Fall alles mit Nginx und Apache auf Plesk. Ich kann auf Plesk zwar hinweisen, jedoch keine ehrliche Empfehlung aussprechen seit ich ISPC nutze. Schau dir die Preistabelle an und entscheide selbst. Mit der gewohnten Linux-Datei- und Ordnerstruktur ist es dann vorbei. Plesk gründet seinen eigenen Staat.
 

maja437

Member
Passwortschutz mit ISPC und Nginx ist ganz einfach. Man legt einen geschützten Ordner an und ISPC macht den Rest. Der Eintrag in der Konfig-Datei sieht nachher z.B. so aus:
Ja danke kenne die Funktion, ist nur bei ner Migration bisschen schwierig. Manuell anlegen ist echt einfach.

Grundsätzliche Frage: Ist es schwierig bzw. überhaupt möglich bei einer "normalen" ISPConfig 3 Installation den verwendeten Webserver später bei bedarf auszuwechseln?

Oder einfach nginx und Apache paralell zu installieren und bei Bedarf zu wechseln? Ist ja bei den PHP-Versionen möglich.
 

matz

Active Member
Ich habe den Wechsel auf Nginx schon hinter mir. HIER kannst du etwas darüber lesen. Es war nicht ganz so einfach, eine Neuinstallation mit Nginx läuft dagegen glatt.
 

maja437

Member
Ich möchte jetzt erstmal ein normales Multiserver-Setup mit Apache auf Debian Buster aufbauen, ich finde nur ältere Tutorials wie z.B. dieses hier. Kann man die Server einfach mit einem normalen "The Perfect Server"-Tutorial aufbauen und dann zum Multiserver-Setup "umbauen"?
es gibt Installationsskript für ISPC und da geht alles automatisch.
Hast du einen Link für mich, ich finde dieses Skript beim besten Willen nicht.
 

florian030

Well-Known Member
Irgendwo gibt es auch eine aktuellere Version.
Du kannst ganz normal den ersten Server installieren und weitere dann an diesen koppeln. Du musst bei der Installation lediglich den Expert-Mode nehmen.

Ich würde auch kein Script nehmen, sondern einfach mal das Tutorial mit cut&paste abarbeiten.
 

maja437

Member
Also die manuelle Installation ist echt sehr simpel und mit einem Makro auch auf zahlreichen Systemen relativ schnell erledigt.

Habe ich das richtig verstanden, dass man alle bis auf den ersten Server des Multiserver-Setups im "Expert-Modus" installieren soll? Hatte ich hier irgendwo gelesen, aber weiß nicht mehr ob das stimmt.
 

matz

Active Member
Das Installationsskript gibt es HIER. Einfach die zip-Datei (mit wget) herunterladen entpacken und install.sh starten. @florian030 hat allerdings Recht mit seiner Aussage, dass man dieses Skript nicht unbedingt braucht. Ich habe es auf eine Empfehlung hin genutzt und es war alles ok. Der Wechsel auf Nginx war allerdings wirklich sehr spannend. Bei mir hat es geklappt aber diese Methode ist mit Sicherheit nicht einfach so übertragbar und mein Server steckte im Anfangsstadium. Den Snapshot habe ich fast zwei Monate stehen lassen, weil ich noch Zweifel hatte.

Wenn du mehr Speed brauchst, ist Nginx mit Sicherheit die bessere Wahl aber dann lieber von Anfang an mit Nginx los legen. .htaccess-Regeln müssen dann mit location-Direktiven gelöst werden. Dafür gibt es Konverter im Netz deren Output man allerdings genauer unter die Lupe nehmen sollte.
 
Zuletzt bearbeitet:

maja437

Member
Ich habe jetzt zum Test mal zwei Server aufgesetzt, beim zweiten (Slave) hänge ich beim installieren von ISPConfig. Ich bekomme beim verbinden des Slave-Servers mit dem Master immer diese Meldung:
Code:
Unable to connect to mysql server MySQL server has gone away

SQL läuft auf beiden Seiten, der Standard-Port 3306 ist in der Firewall offen, der Hostname (subdomain.cdn.example.com) auf beiden Seiten richtig gesetzt und wird auch aufgelöst.

Habe ich irgendwas vergessen, weiß wer Rat? :confused: Habe natürlich gegoogelt und teilweise Postings aus 2011 gefunden, aber keine Lösung dafür.
 

matz

Active Member
Einige Tipps auf die Schnelle... Ich bin ein Freund von "Neuer Boot tut gut" und würde zuerst mit einem Neustart von MySql versuchen. Timeout wäre auch möglich. Was sagen die Logs?
 

florian030

Well-Known Member
ist das der versuch, sich zum lokalen oder master-sql zu verbinden? versuch doch mal, dich mit deinem gemachten angaben für user und pw anzumelden.
Code:
mysql -h HOST -u root -pPASS
 

florian030

Well-Known Member
Das Installationsskript gibt es HIER. Einfach die zip-Datei (mit wget) herunterladen entpacken und install.sh starten. @florian030 hat allerdings Recht mit seiner Aussage, dass man dieses Skript nicht unbedingt braucht.
Ich würde sogar soweit gehen und einfach mal behaupten, dass Dir dieses Skript in bestimmten Situationen komplett um die Ohren fliegt. Ich kenne genügend "versuchte" Installationen, die an an den unterschiedlichsten Stellen gescheitert sind.
 

Werbung

Top