Ich bin dabei, einen LEMP-Stack für die Ausführung von Drupal einzurichten. Ich habe Nginx und PHP-FastCGI installiert.
Nginx funktionierte gut, aber alle Versuche, PHP auszuführen, gab mir den Fehler "502 Bad Gateway".
Eine schnelle Google enthüllte: nginx 502 schlechtes Gateway und erhöhte die gelöste Puffergröße das Problem.
%Vor%Die Frage ist warum?
Mein Verständnis
Aus dem vorherigen Link scheint es, dass nginx Anfragen an PHP-FastCGI gesendet hat und nicht reagiert hat. Was ist mit diesen Anfragen, die eine Auszeit haben?
Hatte es nicht genug Zeit, um zu antworten, weil das PHP komplex war (war es nicht, es war phpinfo();
). Jetzt habe ich den Puffer vergrößert, wann sollte ich mir Sorgen machen, dass ich den Puffer wieder erhöhen muss?
Wenn Sie das nginx-Fehlerprotokoll überprüfen, wird höchstwahrscheinlich diese Nachricht angezeigt:
upstream sent too big header while reading response header from upstream
fastcgi_buffers
legt die Anzahl und die Speichergröße der Puffersegmente fest, die für die Antwort des FastCGI-Upstream verwendet werden.
Standardwerte in der Dokumentation:
fastcgi_buffers 8 4k|8k;
wobei die Standardpuffergröße gleich der PAGESIZE des Betriebssystems ist.
getconf PAGESIZE
ermöglicht das Abrufen der aktuellen Speicherseitengröße.
Zum Beispiel ist in Ubuntu 14.01 der Standardwert PAGESIZE 4 KB.
Das heißt, Sie haben 8 Segmente, jeweils 4KB. Insgesamt ist 32KB.
Die Antwort von FastCGI ist mehr als diese Zahl, deshalb erhalten wir den Antwortcode 502 - server received
Es ist keine großartige Erklärung, aber es wird Ihnen helfen, besser zu verstehen, hoffe ich.