Posted on 2013-03-06 19:49:00 os
Nginx upstream目前只有短连接,通过HTTP/1.0向后端发起连接,并把请求的”Connection” header设为”close”。Nginx与前端的连接默认为长连接,一个用户跟Nginx建立连接之后,通过这个长连接发送多个请求。如果Nginx只是作为reverse proxy的话,可能一个用户连接就需要多个向后端的短连接。如果后端的服务器(源站或是缓存服务器)处理并发连接能力不强的话(比如单进程的squid),就可能导致瓶颈的出现。
从nginx 1.1.4 开始有了原生的ngx_http_upstream_keepalive 模块 和”proxy_http_version” fastcgi_keep_conn” 等指令 ,所以后端的keepalive也在nginx 1.2.0成为现实。
HTTP 1.0实现长连接需要设置请求头部Connection: keep-alive。 但是在HTTP 1.1 中已经不需要了。 所以在nginx中这样配置:
upstream http_backend {
server 127.0.0.1:8080;
keepalive 16;
}
server {
...
location /http/ {
proxy_pass http://http_backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
...
}
}
Cheap Ed Pills In Canada 2014