Admin- / ISP-Software » Plesk

ID #1422 Plesk + Nginx: "504 Gateway Time-out"

Problem

Seit Plesk 10.4 kann Nginx als Proxy dazu installiert werden. Hier war es noch im Beta-Stadium. Seit Plesk 11 ist es anscheinend "stable" und von einigen Hostern in seinen vorinstallierten Server-Images schon mit drin.

Dennoch macht Nginx regelmäßig ärger. Heute gehe ich auf lang ladende Seiten ein. Die sollten im Regelfall nicht vorkommen, aber es gibt einige Scripte die (meist im Backend-Bereich) aufwendige Berechnungen, Datei-Transfer oder ähnliches machen müssen. Hier hilft es nicht mehr die PHP-Timeouts hoch zu setzten (was man in Plesk inzwischen alles selber einstellen kann), sondern der Nginx liefert nach 65 Sekunden einen "504 Gateway Time-out".

Lösung:

Im Gegensatz zu früher hat sich Parallels inzwischen Gedanken zu Fremdeingriffen / Customizing gemacht und eine ansprechende Lösung gefunden. So sind alle Scripte die Konfigurations-Dateien erzeugen nicht mehr "closed source" sondern offenes PHP. Das Ganze ist so organisiert, dass man sogar Update-sicheres "Overwriting" betreiben kann.
Wie dies vorgeht will ich am o.g. Problem einmal vorführen:

Für o.g. Problem recht es die Direktive proxy_read_timeout in die Konfiguration ein zu bringen. Hierzu kopieren wir das default-Template zur Erstellung der Nginx-Vhosts und verändern den kleinen Teil.

Das Template-Basisverzeichnis lautet /usr/local/psa/admin/conf/templates/. Das Verzeichnis default enthält die Plesk-Dateien. Diese bearbeiten wir niemals direkt. Denn sie werden ggf. bei einem Plesk-Update überschrieben.
Stattdessen legen wir ein Verzeichnis custom an, welches Plesk nach Templates als erstes durchsucht. Diese Suche ist bereits in Plesk einprogrammiert. Dazu muss man nichts mehr ändern.
Wichtig ist, dass man die Verzeichnisstruktur aus default beibehält. Da wir die Datei default/domain/nginxDomainVirtualHost.php verändern wollen, brauchen wir also auch das Verzeichnis domain. Beide neuen Verzeichnisse legen wir mit einem Befehl an und kopieren die Datei:

 mkdir -p /usr/local/psa/admin/conf/templates/custom/domain
cp -p /usr/local/psa/admin/conf/templates/default/domain/nginxDomainVirtualHost.php \
        /usr/local/psa/admin/conf/templates/custom/domain/.

Nun kann man die neue Datei bearbeiten. Folgende Zeile habe ich gegen Ende der Datei vor die proxy_set_header eingefügt:

proxy_read_timeout 150;

Mit 150 Sekunden hat das Backend (bei mir die Joomla-Erweiterung "sh404sef") ausreichend Zeit seine Dateien zu scannen und das Ergebnis dar zu stellen.

Damit die Änderung auch für alle Vhosts in einem Rutsch übernommen wird, startet man einen reconfigure-all:

/usr/local/psa/admin/bin/httpdmng --reconfigure-all

 

sozial Bookmarking
Bookmarken bei YIGG Bookmarken bei Mister-Wong Bookmarken bei Icio Bookmarken bei del.icio.us Bookmarken bei Technorati Bookmarken bei Furl Bookmarken bei Spurl Bookmarken bei Yahoo Bookmarken bei Google

huschi, zuletzt 2012-09-24 22:05     Artikel ausdrucken Artikel weiterempfehlen Als PDF-Datei anzeigen

Dieser Inhalt ist unter der Creative-Commons Lizenz lizensiert.

Probleme bitte im Server-Support-Forum diskutieren.

überflüssig 1 2 3 4 5 wertvoll  
Durchschnittliche Bewertung:   5 von 5 (7 Bewertungen)

Artikel kommentieren

Kommentar von marcel (2013-08-23 15:11:45):
Hallo,

eine super Seite hat mir schon viel geholfen, dafür erstmal vielen Dank!
Ich habe eine Problem betreffend einer Migration von einem Managed Server (ohne Root) auf einen 1&1 Rootserver mit neuster Plesk 11.5...
Ich bekomme beim Kopieren eines Backups aus dem FTP Rep ins Server Rep einen 504 Gateway Time-out und weiss nicht wie ich das in den Griff bekommen soll. Kannst du mir einen DAU-freundlichen Ratschlag geben?

Danke!