Nginx proxy_pass Antwort abgeschnitten

9

Ich verwende nginx, um eine https-Anfrage an meinen Anwendungsserver zu senden (der derzeit auf 8443 ausgeführt wird).
Dieser App-Server bedient dynamische Seiten, von denen einige die minimierte JQuery enthalten.
Die Seiten sind fehlerhaft, da die Abfrage anscheinend abgeschnitten ist. Gibt es eine Dateigrößenbeschränkung oder so?

Mein Nginx Conf ist das folgende:

server {
listen      443;
server_name my_serv.com;
ssl                 on;
ssl_certificate     certificate.pem;
ssl_certificate_key privatekey.pem;

keepalive_timeout 70;

location / {
  proxy_pass https://localhost:8443;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_buffering off;
  proxy_buffers 8 8k;
}
}
Luc
quelle
2
Überprüfen Sie Ihr Fehlerprotokoll. Es sollte Ihnen sagen, warum Verbindungen vorzeitig geschlossen wurden.
Kolbyjack
Warum lässt du nginx nicht statische Dateien wie jquery.js bereitstellen?
VBart

Antworten:

8

Ich weiß, dass diese Frage sehr alt ist, aber ich bin gerade auf dasselbe Problem gestoßen. Stellen Sie sicher, dass der Benutzer, auf dem Sie nginx ausführen, über Schreibrechte für das Verzeichnis proxy_temp verfügt. Wenn Sie über Ihren Proxyserver eine größere Antwort bereitstellen, die nicht alle in Ihren proxy_buffers enthalten sein kann, werden die restlichen Antwortdaten auf die Festplatte in Ihrem proxy_temp-Verzeichnis geschrieben. Wenn dies aufgrund unzureichender Berechtigungen (oder eines anderen Speicherplatzes) nicht möglich ist, wird die Antwort abgeschnitten.

Eine einfache Möglichkeit, dies festzustellen, besteht darin, den Browser-Cache zu leeren und die Seite mit geöffneten Chrome-Entwicklertools neu zu laden. Suchen Sie die abgeschnittene Datei auf der Registerkarte "Netzwerk". Wenn die Größe Ihrer Proxy-Puffergröße entspricht (in Ihrem Fall 64 KB), hat nginx wahrscheinlich Probleme beim Schreiben auf die Festplatte.

Weitere Informationen zum nginx proxy_temp_path: http://wiki.nginx.org/HttpProxyModule#proxy_temp_path

Steve
quelle
1
Ihre Antwort inspirierte mich, ein ähnliches Problem zu lösen
Tyler Long
0

Wenn in den Zugriffsprotokollen der Rückkehrcode 304 (nicht geändert) für die abgeschnittene Datei angezeigt wird, versuchen Sie, den Cache des Browsers zu leeren. Leider konnte ich in der Nginx-Konfiguration keine Möglichkeit finden, dies zu beheben.

Marius
quelle
-1

Es gibt, aber standardmäßig ist es 1G:

http://wiki.nginx.org/HttpProxyModule#proxy_max_temp_file_size

Wie @kolbyjack sagte, gibt es wahrscheinlich Fehler in der error.log zu sehen.

Polynom
quelle
2
Das definiert nur die maximale Größe einer temporären Datei. nginx schneidet eine Antwort nicht ab, wenn nicht alle gepuffert werden können. Sie wird synchron vom Upstream bereitgestellt.
Kolbyjack