HTTP协议有一种分块传输编码的机制(chunked Transfer Encoding),即一个HTTP消息可以分成多个部分进行传输。它对HTTP请求和HTTP响应都是适用的。但是目前的nginx版本只支持chunked响应而不支持请求,如果收到chunked请求的话会返回411错误。
开启nginx对chunked请求的办法的有2种:
1.nginx-1.3.9 development version has been released, with support for chunked transfer encoding while reading client request body.
2.加载一个第三方的模块,这个模块是淘宝的开发人员做的,感叹淘宝技术之强大。
http://wiki.nginx.org/HttpChunkinModule
- server {
- chunkin on;
- error_page 411 = @my_411_error;
- location @my_411_error {
- chunkin_resume;
- }
此方法已经在生产环境应用,运行良好。
nginx的Mainline version、Stable version、Legacy version的版本区别
Nginx官网提供了三个类型的版本
Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
Stable version:最新稳定版,生产环境上建议使用的版本
Legacy versions:遗留的老版本的稳定版
nginx下载地址:http://nginx.org/en/download.html