pra*_*ech 17 google-chrome ruby-on-rails nginx
我在2个不同的服务器上托管了2个RoR Web应用程序.对于一个特定页面,请求从第二个应用程序提供.对于其余页面,请求由主应用程序提供.主应用程序的Nginx设置
location /customer/help/ {
proxy_pass http://second-application:3020/help_and_support/;
}
location /assets/ {
proxy_pass http://second-application:3020/assets/;
}
Run Code Online (Sandbox Code Playgroud)
这工作到昨天一直很好.现在,/customer/help/页面加载不正确.在Firefox中它显示一个空白页面,在chrome中,它部分加载,控制台显示错误
net::ERR_INCOMPLETE_CHUNKED_ENCODING
Run Code Online (Sandbox Code Playgroud)
调试后我发现问题可能是通过API发送的图像数据.我的第二个应用程序调用API来获取图像并在页面上显示它们
<% url_with_binary_data = "data:image/" + "jpeg" + ";base64," + u.photo_url.to_s %>
<%= image_tag(url_with_binary_data, :class => "userpic") %>
Run Code Online (Sandbox Code Playgroud)
用于获取图像的API代码
photo_url: Base64.encode64(u.photo.file.read).gsub("\n", '')
Run Code Online (Sandbox Code Playgroud)
DfK*_*era 24
您可能想要检查运行Nginx工作线程的用户是否拥有该目录/var/lib/nginx.
我已经了解到,当您为Nginx提供过大的响应时,它会使用此目录作为临时文件的工作目录.如果工作进程无法访问它,Nginx将在传输完成之前终止传输,因此错误INCOMPLETE_CHUNKED_ENCODING.
小智 9
在AWS上遇到了这个问题,发现在站点配置文件中添加了一些proxy_buffer指令可以解决以下问题:
server {
...
location / {
...
proxy_buffers 8 1024k;
proxy_buffer_size 1024k;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13002 次 |
| 最近记录: |