On Mon, Apr 23, 2012 at 10:30 PM, 龚开晖 <gongkh@163.com> wrote:
> 我发现了一个Nginx的bug,但不知道怎么向官方报告。
>
如果你遇到了 nginx 的 bug,可以订阅 nginx
官方的邮件列表,并发送英文邮件到那里报告问题:http://mailman.nginx.org/mailman/listinfo/nginx
> 有些upstream会用chunked transfer encoding返回给nginx,而nginx默认采用chunked
> transfer,似乎也没有检查upstream的transfer encoding,最终返回给客户端时,会多了一层chunked编码。
>
你使用 ngx_proxy 模块的时候应该没有启用 HTTP 1.1 支持吧?默认情况下,ngx_proxy 发送到后端的都是 HTTP
1.0 请求,所以如果后端返回 HTTP 1.1 chunked 编码的响应,则是你的后端 HTTP 服务有 bug. 因为为 HTTP
1.0 请求返回 HTTP 1.1 响应是非法的。所以我不觉得这里是 nginx 的问题。
一般有两种解法:
1. 修正你的后端 http 服务,为 HTTP 1.0 请求返回合法的 HTTP 1.0 响应
2. 或者使用 nginx 1.1.14 以后的版本,并配置 ngx_proxy 总是使用 HTTP 1.1 协议而不是 HTTP 1.0 来访问后端。
-agentzh
P.S. 我同时抄送给了 openresty 邮件组:https://groups.google.com/group/openresty 同时欢迎你加入。