net :: ERR_INCOMPLETE_CHUNKED_ENCODING nginx

我有2个RoR Web应用程序托pipe在2个不同的服务器上。 对于一个特定页面,请求由第二个应用程序提供。 对于其余页面,请求由主应用程序提供。 主应用程序的Nginx设置

location /customer/help/ { proxy_pass http://second-application:3020/help_and_support/; } location /assets/ { proxy_pass http://second-application:3020/assets/; } 

这工作得很好,直到昨天。 现在, /customer/help/ page加载不正确。 在Firefox中,它显示空白页面,在铬部分加载和控制台显示下面的错误

 net::ERR_INCOMPLETE_CHUNKED_ENCODING 

debugging后,我发现这个问题可能是通过API发送的图像数据。 我的第二个应用程序调用API来获取图像并将其显示在页面上

 <% url_with_binary_data = "data:image/" + "jpeg" + ";base64," + u.photo_url.to_s %> <%= image_tag(url_with_binary_data, :class => "userpic") %> 

API代码来获取图像

 photo_url: Base64.encode64(u.photo.file.read).gsub("\n", '') 

您可能需要检查运行Nginx worker的用户是否拥有目录/var/lib/nginx

我了解到,当你对Nginx的响应太大时,它会使用这个目录来写作临时文件的工作目录。 如果工作进程无法访问它,Nginx将在传输完成之前终止传输,从而导致错误INCOMPLETE_CHUNKED_ENCODING。

对我来说,解决方案是DfKimer推荐的,但不是/var/lib/nginx而是/var/cache/nginx

对于我来说,解决方案是启用proxy_max_temp_file_size