nginx反向代理文件输出一半

最近在和腾讯的合作的项目中 需要把代码部署到对方服务器上,期间总是出现一些奇怪的js报错 重启node服务后一般就正常了 ,临近上线了 昨天专门跟进了这个问题。因为js是压缩合并过的 ,当不合并时正常 ,所以初步定位是合并后的文件出现问题,修改服务端代码 改用未压缩版本合并后输出 ,firebug报错很明确的指出是语法错误 括号没闭合 ,下载下来看果然 合并的js是半截的....

调试后发现node合并的文件是完整的 也就是说 从node输出是正常的 经过nginx后就少了,跟踪nginx错误日志 发现是nginx下的proxy_temp没有写入权限( nginx 日志failed (13: Permission denied) while reading upstream) 。。。

修改权限后 世界正常了。

 

比较有意思的是 proxy_temp没有写入权限 不会导致文件完全为空,看来nginx处理是先输出buffer的内容 超过buffer_size的再去proxy_temp里找

 

附录:

  nginx 反向代理参数说明

    proxy_connect_timeout 600;              #nginx跟后端服务器连接超时时间(代理连接超时)
    proxy_read_timeout    600;              #连接成功后,后端服务器响应时间(代理接收超时)
    proxy_send_timeout    600;              #后端服务器数据回传时间(代理发送超时)
    proxy_buffer_size     32k;              #设置代理服务器(nginx)保存用户头信息的缓冲区大小
    proxy_buffers         4 32k;            #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
    proxy_busy_buffers_size  64k;           #高负荷下缓冲大小(proxy_buffers*2)
    proxy_temp_file_write_size  64k;      #设定缓存文件夹大小,大于这个值,将从upstream服务器传

 

posted on 2013-01-16 11:07  雨弓  阅读(1881)  评论(0编辑  收藏  举报