Hello!
2015-07-24 9:59 GMT+08:00 杨阳:
> Hi, 春哥
> 我想问下,比如客户端是用1.1来向nginx请求的,我希望nginx在往上游转发请求的时候采用 1.0, 我试着改写 proxy
> 中的proxy_http_version 1.0
> 发现好像起不到作用,我想问下,通过其他方式可以改写成1.0的请求吗?我其实就是希望上游不往nginx吐出chunked
> 的头,所以想用这种方式让它吐出content-length, 不知道春哥有什么好的建议,谢谢。
>
请注意,HTTP 1.0 协议也没有规定必需输出 Content-Length 响应头。当没有此响应头时,就以断开连接作为响应的末尾。
你可以使用 tcpdump 或者 wireshark 这样的工具查看 nginx 发给后端的原始的 HTTP 请求头。当然,使用 nc
得到原始请求更方便一些(即通过 nc -l 命令监听一个端口再让 proxy_pass 指向该端口)。我怀疑 nginx 发出的确实是
HTTP 1.0 请求,但你的后端服务器并没有遵守,仍然吐 HTTP 1.1 的 chunked 响应。
Regards,
-agentzh