=======
说明篇
=======
之前基于nusoap搭好的nginx+php的webservice服务(http://blog.csdn.net/linvo/article/details/9109963),在和java那边调试的时候出错
java那边get wsdl时正常,post调用服务后报 “No namespace on "html" element” 错误,查了nginx log,发现nginx返回411错误
HTTP的411状态具体就不多说了,这里说下针对Nginx的情况:
nginx给出的官方解释有三种情况会引发nginx弹411回去
1、client sent invalid “Content-Length” header
2、client sent … method without “Content-Length” header
3、client sent “Transfer-Encoding: chunked” header
感觉像是第二种,但是最后我的解决方法却是:
为Nginx增加了HttpChunkinModule模块!
========
安装篇
========
安装前先看下当前Nginx的模块配置信息(例如):
/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.0.15
TLS SNI support disabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
下载chunkin-nginx-module(https://github.com/agentzh/chunkin-nginx-module/tags)并解压
重新编译Nginx,configure增加参数 --add-module=/root/chunkin-nginx-module-0.23/ (视情况设置此处模块的源码目录)
make -j2
make install
Nginx配置文件server中增加如下参数:
server { chunkin on; error_page 411 = @my_411_error; location @my_411_error { chunkin_resume; } ……
----------------------------------- 我是分割线 --------------------------------------
相关链接:
http://blog.chinaunix.net/uid-16974460-id-296023.html
http://www.l99.com/1548156/blog/view/283241
http://wiki.nginx.org/HttpChunkinModule