Respuesta Nginx proxy_pass truncada

9

Utilizo nginx para solicitar proxy https a mi servidor de aplicaciones (actualmente se ejecuta en 8443).
Este servidor de aplicaciones sirve páginas dinámicas, algunas de ellas incluyendo jquery minified.
Las páginas están en error ya que parece que jquery está truncado ... ¿hay un límite de tamaño de archivo o algo así?

Mi nginx conf es el siguiente:

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
fuente
2
Verifique su registro de errores. Debería decirle por qué las conexiones se cerraron antes de tiempo.
kolbyjack
¿Por qué no dejas que nginx sirva archivos estáticos como jquery.js?
VBart

Respuestas:

8

Sé que esta pregunta es muy antigua, pero me encontré con el mismo problema. Asegúrese de que el usuario que está ejecutando nginx tenga privilegios de escritura en el directorio proxy_temp. Si está sirviendo una respuesta más grande a través de su servidor proxy que no se puede mantener en sus proxy_buffers, el resto de los datos de respuesta se escriben en el disco en su directorio proxy_temp. Si no puede debido a privilegios inadecuados (u otra cosa, es decir, espacio en disco), la respuesta se trunca.

Una manera fácil de saber es que este es el problema es borrar la memoria caché del navegador y volver a cargar la página con las herramientas de desarrollador de Chrome abiertas. Busque el archivo truncado en la pestaña de red, y si el tamaño coincide con el tamaño de su búfer de proxy (64k en su caso), es probable que nginx tenga problemas para escribir en el disco.

Más información sobre el nginx proxy_temp_path: http://wiki.nginx.org/HttpProxyModule#proxy_temp_path

Steve
fuente
1
Su respuesta me inspiró a resolver un problema similar
Tyler Long
0

Si en los registros de acceso está viendo el código de retorno 304 (No modificado) para el archivo truncado, intente borrar la memoria caché del navegador. Desafortunadamente, no pude encontrar una manera de 'arreglar' esto desde la configuración de nginx.

Mario
fuente
-1

Hay, pero por defecto es 1G:

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

Como dijo @kolbyjack, probablemente haya errores en el error.log para ver.

polinomio
fuente
2
Eso solo define el tamaño máximo que puede tener un archivo temporal. nginx no truncará una respuesta si no se puede almacenar todo en el búfer, se servirá sincrónicamente desde el flujo ascendente.
kolbyjack