zoukankan      html  css  js  c++  java
  • nginx 配合jersey+netty的奇怪问题

    角色

    client

    proxy nginx

    server jersey+netty

    问题表现

    client 直接请求server 正常,返回准确json数据 jsondat 

    client->nginx->server 经过nginx,则请求长时间阻塞,直到超时返回异常数据 "2000 {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都支持!

  • 相关阅读:
    hasCode in Java
    如何区分同一Class的不同实例对象
    如何构建XML文件
    Spring <context:property-placeholder/>的作用
    关于List的几个方法
    Java 中那些不常用的关键字
    设计模式
    Java源代码阅读-Object.toString()
    修复启动项
    centos关闭防火前
  • 原文地址:https://www.cnblogs.com/zihunqingxin/p/6879317.html
Copyright © 2011-2022 走看看