NetVision-Technik

NetVision-Technik (http://www.netvision-technik.de/forum/index.php)
-   Webserver (http://www.netvision-technik.de/forum/forumdisplay.php?f=9)
-   -   nginx HTTP ERR 504 Gateway Time Out (http://www.netvision-technik.de/forum/showthread.php?t=6809)

Zero111 04.06.2012 22:34

nginx HTTP ERR 504 Gateway Time Out
 
Moin Leute,

wir haben seit kurzem den Apache in Rente geschickt und setzen jetzt auf nginx.

Jedoch erhalten wir sporadisch und auch nur für einige Sekunden folgende Fehlermeldungen:

504 Gateway Time Out

502 Bad Gateway

nginx 1.3.0 mit php5-fpm als FastCGI Schnittstelle zu php setzen wir ein.

Weiß jemand einen Rat?

bl0bb 05.06.2012 09:07

Naja, entweder sind deine Konfigs zu großzügig oder zu knapp bemessen.

Die Fehlermeldungen kommen wenn der Server überlastet ist (zuwenig erlaubte Verbindungen/Serverprozesse), oder wenn sich die Einstellungen gegenseitig behindern.

Wie ist denn das Aufkommen bei dir so? Also wieviele Requests hast du denn so pro Minute?
Kannst ja mal deine nginx.conf und php-fpm.conf zeigen.

Die Werte die reinspielen sind:
- worker_processes
- worker_rlimit_nofile
- worker_connections
- pm.max_children
- pm.start_servers
- pm.min_spare_servers
- pm.max_spare_servers
- pm.max_requests

Würde dir vorschlagen erst einmal niedrig anzufangen und dich dann langsam hochzuarbeiten, je nachdem wie das Seitenverhalten ist.

Ich habe bei mir (ca 30k Requests/min) folgendes und fahre gut damit:
- worker_processes 4
- worker_rlimit_nofile 50000
- worker_connections 20000
- pm.max_children 150
- pm.start_servers 5
- pm.min_spare_servers 1
- pm.max_spare_servers 10
- pm.max_requests 50

Aber jeder Server reagiert anders, andere Einstellungen können das Verhalten auch noch beeinflußen. Einfach probieren...
Ich habe für meine Einstellungen etwa 2 Tage gebraucht, bis es wirklich keine Probleme mehr gab. Aller Anfang ist schwer ;)

Zero111 05.06.2012 11:08

kann man das irgendwo nachlesen wieviel Requeste man pro min hat?

bl0bb 05.06.2012 11:55

netstat... access.logs...

DefCon3 07.06.2012 09:49

In 90% der Fälle deuten die fehlercodes darauf hin das die fast cgi schnittstelle nicht reagiert und somit kein php ausgeführt wird.

Du hast bestimmt nen cron der den fast cgi startet/checked ob er noch läuft? Die sporadischen ausfälle sind bestimmt in dem Zeitfenster wo der cron nicht läuft und fastCGI nicht reagiert weil der prozess nicht läuft.

Die Probleme hatte ich leider auch mal ... könntest testweise mal den cron von der Taktung hochschrauben um zu testen ob es daran liegt. Ist ja nur ne prozess suche und wenn nichts gefunden wird einfach den fastCGI respawnen.

Best regards,
DefCon3

Zero111 07.06.2012 10:37

nein es lag wohl einfach nur an einer config mit der nginx und php5-fpm nicht harmonierten

gestern ne neue Config eingespielt zum testen und seit dem keine 502 Error lt Log

bl0bb 07.06.2012 12:06

Zitat:

Zitat von DefCon3 (Beitrag 75938)
In 90% der Fälle deuten die fehlercodes darauf hin das die fast cgi schnittstelle nicht reagiert und somit kein php ausgeführt wird.

Du hast bestimmt nen cron der den fast cgi startet/checked ob er noch läuft? Die sporadischen ausfälle sind bestimmt in dem Zeitfenster wo der cron nicht läuft und fastCGI nicht reagiert weil der prozess nicht läuft.

Soetwas braucht man seid der Version 0.x.y nicht mehr, diese Zeiten sind vorbei.

DefCon3 07.06.2012 12:25

Gut zu wissen :) War immer nen derber Aufwand

Mitnick 07.06.2012 15:08

Manche Leute nutzen sogar Apache2 als backend und Nginx als Frontendlösung. Hab ich schon bei einigen Amerikanischen Trackern mit weit über 500k Peers gesehen.

bl0bb 07.06.2012 15:52

Zitat:

Zitat von Mitnick (Beitrag 75948)
Manche Leute nutzen sogar Apache2 als backend und Nginx als Frontendlösung. Hab ich schon bei einigen Amerikanischen Trackern mit weit über 500k Peers gesehen.

Die Lösung ist allerdings mehr als sinnfrei. Solange die Webanwendung nicht direkt von Apachemodulen abhängt, ist eine Kombination von nginx und Apache Quatsch. Kann man die Webanwendung nicht entsprechend anpassen, ist es natürlich komfortabel nginx vor den Apachen zu schalten, um den Server zu entlasten und die Seite zu beschleunigen.
Meines Wissens benötigt keine Trackersource zwingend den Apachen oder eines seiner Module, daher verstehe ich die Kombination nicht. nginx allein bietet noch mehr Performance, ist resistenter und hat weniger Lücken.

etwas OT...
Ich habe bei einigen Gesprächen mit Betreibern größerer Non-DE-ALTs festgestellt, dass auch da wenig Zeit in Optimierung investiert wird. Deren Server haben HW verbaut, die man hierzulande für sehr gutes Geld bekommt. Daher ist es auch kein Wunder, wenn die 600$ und mehr im Monat berappen müssen. Und dennoch kriechen die Server oft auf dem Zahnfleisch, auch wenn da nur 200k Peers zugegen sind (oder noch weniger). OK, "nur" - bei den meißten deutschen ALTs wäre da schon lange Schicht im Schacht oO
Mit meinem Server könnte ich 1Mio Peers bedienen - da wäre die Last zwar dauerhaft bei 90%, aber für 8GB und einen Xeon E3 ist das in Ordnung.
Mein Fazit: Optimiert eure Site, setzt nginx ein und ihr spart bares Geld. Eure User werden es euch danken ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 Uhr.

Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2025, vBulletin Solutions, Inc.