这时才想起来,去看nginx,发现这样的报错:
"POST http://xxxxx/solr/core1/update?wt=javabin&version=2" 411 649 "-" "Solr[org.apache.solr.client.solrj.impl.HttpSolrServer] 1.0"
这就很明显了411错,原来是被nginx拦截且报错返回了, 411报错有一下这些原因:
nginx给出的官方解释有三种情况会引发nginx弹411回去
client sent invalid “Content-Length” header client sent … method without “Content-Length” header client sent “Transfer-Encoding: chunked” header
且这里有解决方案:
http://wiki.nginx.org/HttpChunkinModule
配置
会绕过nginx ngx_http_process_request_header 方法中对以上三种情况的检查
但是发现我nginx版本不支持HttpChunkinModule,先记着,等我升级了再来确认是否有效。
这边也找到类似的文章:http://artori.us/nginx-411-error/