1

Ich besitze eine n1-highcpu-16 (16 vCPUs, 14,4 GB Speicher). Ich habe das mit einem Bitnami NGINX Setup.Getting 502 schlechtes Gateway auf Google Cloud

Wenn ich etwa 400-600 Leute vor Ort habe, gibt es manchmal 502 schlechtes Gateway. Ich betreibe damit Bots, daher neigt es dazu, große Fehler für mich zu machen. Es passiert, wenn die Site etwa 50-100 Anfragen an die PHP-Datei erhält, die eine einzige SQL-Verbindung durchführt. Danach erscheint auf meiner Website ein 502 schlechter Gateway-Fehler.

Gibt es eine Lösung, wie das zu beheben?

Meine PHP-Einstellungen:

pm=static 

; The number of child processes to be created when pm is set to 'static' and the 
; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. 
; This value sets the limit on the number of simultaneous requests that will be 
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. 
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP 
; CGI. The below defaults are based on a server without much resources. Don't 
; forget to tweak pm.* to fit your needs. 
; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' 
; Note: This value is mandatory. 
pm.max_children=50 

; The number of child processes created on startup. 
; Note: Used only when pm is set to 'dynamic' 
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers)/2 
pm.start_servers=5 

; The desired minimum number of idle server processes. 
; Note: Used only when pm is set to 'dynamic' 
; Note: Mandatory when pm is set to 'dynamic' 
pm.min_spare_servers=5 

; The desired maximum number of idle server processes. 
; Note: Used only when pm is set to 'dynamic' 
; Note: Mandatory when pm is set to 'dynamic' 
pm.max_spare_servers=30 

; The number of seconds after which an idle process will be killed. 
; Note: Used only when pm is set to 'ondemand' 
; Default Value: 10s 
;pm.process_idle_timeout = 10s; 
; The number of requests each child process should execute before respawning. 
; This can be useful to work around memory leaks in 3rd party libraries. For 
; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. 
; Default Value: 0 
pm.max_requests = 5000 
+0

Ein HTTP-Fehler wie ein 502 ist ein Symptom, das Sie auffordert, etwas wie "überprüfen Sie Ihre Anwendungsprotokolle" zu tun. A 502 bedeutet speziell, dass etwas mit einer Verbindung zu einem Upstream-Server nicht stimmt, und da Sie erwähnen, dass Sie eine einzige SQL-Verbindung verwenden, um Ihren gesamten Anfrageverkehr zu verarbeiten, ist meine Vermutung, dass es etwas damit zu tun haben würde. – Adam

+0

Ich habe gerade bemerkt, dass dies vor einem Monat gepostet wurde, nicht heute, also lass es uns wissen, wenn du jemals eine Lösung für dieses Problem gefunden hast. – Adam

Antwort

0

Sind Sie sicher, dass dies ein Problem mit der SQL-Verbindung ist? Da pm.max_children auf 50 festgelegt ist, wird ein Fehler 502 Bad Gateway ausgelöst, wenn alle 50 Threads verwandt werden. Sie sollten versuchen, weitere Server zu starten, um weitere Anfragen zu bearbeiten.

Alternativ versuchen Sie, pm.max_children zu erhöhen und zu senken, und sehen Sie, ob dies die Zahlen beeinflusst, und hilft, eine Schlussfolgerung zu ziehen.

Verwandte Themen