我有2个RoR web应用程序托管在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/页面不能正确加载。在firefox中,它显示一个空白页面,在chrome中,它部分加载,而控制台显示一个错误
net::ERR_INCOMPLETE_CHUNKED_ENCODING经过调试,我发现这个问题可能与通过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", '')发布于 2015-09-30 03:21:19
您可能希望检查运行Nginx worker的用户是否拥有目录/var/lib/nginx (或某些发行版中的/var/cache/nginx )。
我了解到,当你给出一个对Nginx来说太大的响应时,它会使用这个目录作为临时文件的工作目录。如果工作进程无法访问它,Nginx将在传输完成之前终止传输,因此出现错误INCOMPLETE_CHUNKED_ENCODING。
发布于 2018-03-05 20:32:38
在亚马逊网络服务上遇到了这个问题,并发现在站点配置文件中添加一些proxy_buffer指令解决了这个问题:
server {
...
location / {
...
proxy_buffers 8 1024k;
proxy_buffer_size 1024k;
}
}发布于 2016-07-15 11:40:41
对我来说,解决方案是DfKimer推荐的,但它不是/var/lib/nginx,而是/var/cache/nginx。
https://stackoverflow.com/questions/29789268
复制相似问题