我使用 nginx 作为反向代理,并在后台使用 varnish。我有 LAMP 为 varnish 提供动力。我在 Varnish 服务器上看到的问题是,每次处理请求时都会建立来自 nginx 的连接。
我们每秒处理的请求超过 300 个,我们看到类似这样的情况:
netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
2 ESTABLISHED
1 FIN_WAIT1
7 LISTEN
1 SYN_RECV
43187 TIME_WAIT
这当然是不可取的。最好的办法是,我们在 nginx 和 varnish 之间设置一个隧道或连接,所有通信都通过该静态连接进行。我不太清楚具体该怎么做,或者是否有更好的方法。
我还能在这里做什么?
谢谢
答案1
Nginx 仅支持其自身与后端服务器之间的 HTTP/1.0,因此默认情况下没有 HTTP 保持连接 :(
有很多奇怪而又奇妙的第三方模块可能会有所帮助,但到目前为止,我只发现对 memcache 和 redis 的 keepalive 支持,没有 HTTP