Abgeschnittene oder übergroße Antwort-Header, die vom Daemon-Prozess empfangen wurden

9

Ich habe kürzlich eine Python-Django-Anwendung von einem Debian-System in eine Redhat-Unternehmensverteilung migriert. Die Anwendung wird gehostet mit httpd, mod_wsgi und läuft in einem vend in einem Daemon-Prozess. Bei großen Anfragen bekomme ich nun folgende Fehlermeldung in der Protokolldatei:

%Vor%

Ich habe noch nie so etwas erlebt und Google ist auch hier nicht der Schlüssel. Ich überprüfte die Konfiguration von Apache, aber keine Config bezieht sich auf Response-Header in dort.

Meine httpd.conf-Konfiguration sieht so aus (hübscher Standard):

%Vor%

Hat irgendein Guru einen Hinweis, in welche Richtung ich schauen sollte?

    
kartopete 18.07.2014, 15:47
quelle

4 Antworten

-1

Es stellte sich heraus, dass es nicht das eigentliche Problem war. Das Problem lag tiefer, als ich Kairo nach CairoCffi wechselte und der RSVG-Handler nicht mit dem Context-Object von Cffi umgehen konnte. Nein, mein aktuelles Problem ist eine aktuelle Python-Bibliothek, die es mir ermöglicht, svg in png zu konvertieren. Die Verwendung von svg2png von CairoSVG funktioniert nicht für mich. Ich bekomme ein

  

cairo gab CAIRO_STATUS_NO_MEMORY: nicht genügend Arbeitsspeicher

zurück

Fehler, von dem ich mir sicher bin, dass es nicht mehr die Wahrheit sagt und das Problem woanders liegt. Aber lass uns sehen.

    
kartopete 22.07.2014, 06:56
quelle
3

Der von Apache von mod_wsgi verwendete Code wendet eine Begrenzung der Größe eines einzelnen Antwort-Headers an, der von mod_wsgi-Daemon-Modus-Prozessen zurückgegeben wird. Dies würde zu einer wirklich kryptischen Fehlermeldung von Apache führen, die nicht auf das Problem hinweist. Aus dem Speicher war der vorherige Fehler:

%Vor%

Das Größenlimit wurde in Apache ebenfalls fest codiert und konnte nicht geändert werden. Dies hat Probleme für einige Python-Webanwendungen wie Keystone in OpenStack verursacht, die sehr große Authentifizierungsheader generieren.

In mod_wsgi 4.1+ wurde die Abhängigkeit vom Apache-Code aufgehoben und das Limit ist jetzt konfigurierbar. Die Fehlermeldung ist auch genauer, wie Sie gesehen haben.

Die standardmäßige maximale Header-Größe für das, was vom mod_wsgi-Daemon-Modus zurückgegeben wird, dh Header-Name und Wert, beträgt ungefähr 8192 Byte. Sie können dies überschreiben, indem Sie die Option 'header-buffer-size' für WSGIDaemonProcess verwenden.

Können Sie angeben, welche Anwendung und welcher Header so groß war, dass das Limit erreicht wurde, um zu wissen, welche anderen Python-Webanwendungen neben Keystone solch große Header erzeugen, wenn es sich um eine häufig verwendete Anwendung handelt.

Eine zweite Möglichkeit, die von der "abgeschnittenen" Referenz in dieser Nachricht herrührt, ist, dass Ihr mod_wsgi-Daemon-Prozess abgestürzt ist. Sie sagen jedoch nicht, dass Sie einen "Segmentierungsfehler" oder eine ähnliche Meldung angezeigt haben, die darauf hinweist, dass ein Absturz aufgetreten ist. Überprüfen Sie das, und wenn zu diesem Zeitpunkt andere Nachrichten im Fehlerprotokoll vorhanden sind, geben Sie an, was sie waren, und können Sie dies als primäres Problem betrachten.

    
Graham Dumpleton 19.07.2014 20:35
quelle
1

Ich hatte ein Problem mit CentOS 7 Server beim Deployment von Django mit httpd mit mod_wsgi 4.5.4 . Ich musste zu mod_wsgi 4.3.2 zurückkehren, was mein Problem löste.

    
Mosoti M. 12.08.2016 20:20
quelle
0

Ich hatte plötzlich dasselbe Problem nach einem Update. Das nächste Update behebt das Problem ... Ich betreibe arch, ab dem Datum dieses Beitrags funktioniert die WSGI-Version in Repo.

    
Luke Dupin 23.02.2015 06:33
quelle