这是我的服务器架构:
端口443 - > haproxy 1.6.3 - > nginx 1.1.19 - > uwsgi 2.0.13.1 - > wsgi python服务器(Django)
我知道使用haproxy + nginx很奇怪,但我别无选择,因为我需要haproxy用于端口443上同一服务器上的另一个项目。
这是我的haproxy配置:
frontend www-https
bind *:443 ssl crt /etc/ssl/private/
mode http
option httpclose
acl nginx hdr_end(host) -i example.com
backend nginx
mode http
balance leastconn
option forwardfor
option http-server-close
option forceclose
no option httpclose
server nginx-01 nginx:52654 check
这是我的nginx配置
server {
listen 52654 default_server;
charset utf-8;
client_max_body_size 75M;
chunked_transfer_encoding on;
location / {
uwsgi_pass django;
proxy_buffering off;
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
}
}
我遇到的问题是,当我使用分块编码上传wuth一个Web客户端时,我得到411 HTTP错误内容长度需要。
如果我绕过haproxy,它的工作正常。但是使用haproxy + nginx会给出chunked编码的411错误。
有什么想法吗?
答案 0 :(得分:1)
你的nginx版本已经很老了。尝试升级它。