Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

nginx 配置之 proxy_pass 开启 keep-alive

  在复杂的服务器架构中,通常会有很多内部服务集群互相依赖,因此内部的 proxy_pass 也是使用非常频繁的。但如果只是默认配置,proxy_pass 采取的只是短连接。而频繁地建立和断开连接势必会影响到性能,特别是内部代理也采用 https 之类的场景下更是如此。
  首先,nginx 的 proxy_pass 会无视客户端传过来的 Connection 头,而是将转发的请求头中的 Connection 字段置为 close(代码),所以 nginx 默认是不会使用 keep-alive 的。那么我们就需要手动使用 proxy_set_header 来重置 Connection 为 keep-alive 才行。
  以上只是告诉上游服务器我们要使用 keep-alive 而已,我们自己作为客户端当然也有一堆 keepalive 相关的配置。而且 upstream 的 keepalive 默认是没有开启的,需要在 upstream 块中打开。下面就是一个比较完整的例子
server { listen 8080; location / { proxy_http_version 1.1; proxy_set_header Connection ''; proxy_pass http://hehe; } } upstream hehe { keepalive 32; server 127.0.0.1:8081; } server { listen 8081; keepalive_timeout 10; return 200 $http_connection; }
网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^