yunde110 发表于 2017-12-23 17:50:23

nginx 配合jersey+netty的奇怪问题

  角色
  client
  proxy nginx
  server jersey+netty
  问题表现
  client 直接请求server 正常,返回准确json数据 jsondat
  client->nginx->server 经过nginx,则请求长时间阻塞,直到超时返回异常数据 "2000\r\n{jsondata}\"��"
  头尾都异常
  问题原因
  正常情况 nginx->server 拿到数据,判断传输中止,则nginx->client把数据返回给客户端
  现状态
  nginx-server 拿到数据,但无法判断出数据已中止,一直拿着数据,直到超时,加上异常信息,给client
  判断中止的条件,不外乎
  Content-Length/Chunked
  server和nginx配合有瑕疵,显然是nginx 对chunked处理有误。
  chunked总体是http1.1里的内容,这是nginx的缺陷,而nginx理应没有这个问题
  很大的可能是版本过低
  经确认
  服务器
  nginx version: nginx/1.0.15
  确认是nginx版本过低导致
  http://nginx.org/en/docs/faq/chunked_encoding_from_backend.html
  https://serverfault.com/questions/159313/enabling-nginx-chunked-transfer-encoding/187573#187573
  升级至1.12.0
  另nginx部分版本默认设置还是1.0,需要单独设置1.1
  问题解决
  nginx都支持http2.0了,公司还在用连1.1都不支持的,实在醉了
页: [1]
查看完整版本: nginx 配合jersey+netty的奇怪问题