Nginx-Upstream hat einen zu großen Header gesendet, während der Antwort-Header vom Upstream gelesen wurde

8

Ich bekomme einen Fehler wie folgt:

%Vor%

In Bezug auf diese Frage ist es möglich, die Puffergröße von nginx conf wie folgt zu erhöhen: Upstream gesendet zu großen Header beim Lesen Antwort Header aus Upstream

%Vor%

(Für die zukünftige Referenz ist die Standardgröße für fastcgi_buffer_size und fastcgi_buffers 4k oder 8k, bezogen auf die Plattform)

Dieser Text erscheint im Browser des Benutzers: Nginx 502 Bad Gateway

Ich plane, die Puffergröße vorübergehend zu erhöhen. Dann kann ich loggen, wenn die Puffer zu groß sind. Ist es möglich Header zu finden, die zu groß für Upstream sind? apache_response_headers () und headers_list () haben mir nicht alle Antwort-Header gegeben. Es gab mir nur Verfalls-, Cache-Control- und Pragma-Header.

Macht das Ändern von proxy_buffer_size ein Leistungsproblem?

(nginx-Version: nginx / 1.6.0, PHP 5.4.42, xcache 3.2)

    
trante 04.08.2015, 11:43
quelle

1 Antwort

11

Sie können leicht eine Antwort auf SO finden, aber was wirklich einen Unterschied macht, ist die einzige Konfigurationsoption:

%Vor%

Trotzdem ist diese Empfehlung wahrscheinlich nicht das, was Sie wollen. Lassen Sie uns durch Details sehen, warum das Problem zu lösen hilft:

fastcgi_buffer :

  

Syntax: fastcgi_buffers Zahlengröße;

     

Standard: fastcgi_buffers 8 4k | 8k;

     

Kontext: http, Server, Speicherort

     

Legt die Anzahl und Größe der Puffer fest, die zum Lesen einer Antwort verwendet werden   vom FastCGI-Server für eine einzelne Verbindung. Standardmäßig ist der   Die Puffergröße entspricht einer Speicherseite. Dies ist entweder 4K oder 8K,   abhängig von einer Plattform.

fastcgi_buffer_size :

  

Syntax: fastcgi_buffer_size Größe;

     

Standard: fastcgi_buffer_size 4k | 8k;

     

Kontext: http, Server, Speicherort

     

Legt die Größe des Puffers fest, der zum Lesen des ersten Teils des Puffers verwendet wird   Antwort vom FastCGI-Server erhalten. Dieser Teil enthält normalerweise   ein kleiner Antwort-Header. Standardmäßig ist die Puffergröße gleich eins   Speicherseite. Dies ist entweder 4K oder 8K, abhängig von einer Plattform. Es kann   kleiner gemacht werden.

Es gibt also nur fastcgi_buffer_size , was einen Unterschied macht, weil der Antwortheader nicht in den 4KB-Puffer passt. Die meiste Zeit passiert es aufgrund der großen Cookie-Größe. Es wird daher dringend empfohlen, die Einstellungen unverändert zu belassen, aber die Cookie-Größe zu reduzieren und nur eine minimale Datenmenge wie user_id, session_id zu speichern. Der allgemeine Cookie-Speicher ist also für nicht-sensible IDs gedacht. Einige Browser behandeln große Cookies nicht gut.

Also wäre die Lösung:

%Vor%

Im Falle von Schwierigkeiten mit der Reduzierung der Cookie-Größe deaktivieren Sie die Pufferung für bestimmte Speicherorte:

%Vor%     
Anatoly 14.08.2015 18:42
quelle

Tags und Links