我使用nginx代理https请求到我的应用程序服务器(当前运行在8443)。
这个应用程序服务器提供dynamic页面,其中一些包括jQuery的缩小。
页面出现错误,因为它似乎jquery被截断…有没有文件大小限制或什么?
我的nginx conf是以下一个:
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; } }
我知道这个问题是超级老,但我碰到了同样的问题。 确保你正在运行nginx的用户具有写入proxy_temp目录的权限。 如果通过代理服务器提供的更大响应不能全部保存在proxy_buffers中,则其余响应数据将被写入您的proxy_temp目录中的磁盘。 如果因为权限不足(或其他方面,即磁盘空间)而不能这样做,则响应会被截断。
一个简单的方法可以告诉是这个问题是清除您的浏览器caching,并重新加载与Chrome开发工具打开的页面。 在networking选项卡中find截断的文件,如果大小匹配你的代理缓冲区大小(在你的情况下是64K),那么nginx可能有问题写入磁盘。
有关nginx proxy_temp_path的更多信息: http ://wiki.nginx.org/HttpProxyModule#proxy_temp_path
如果在acces日志中看到截断文件的返回码304(未修改),请尝试清除浏览器的caching。 不幸的是,我找不到从nginxconfiguration中修复这个问题的方法。
有,但默认1G:
http://wiki.nginx.org/HttpProxyModule#proxy_max_temp_file_size
就像@kolbyjack所说的,在error.log中可能有错误要看。