文章目录加载中

Nginx配置长连接

# 为什么要用长连接?

  • 不需要每次 tcp 请求都经历握手和挥手的过程
  • 提高响应请求响应时间,减少 time-wait 状态的 Socket

# Nginx 配置思路

先来看请求链路过程是:C 端请求 => Nginx 代理 => 上游的 Server。

所以,Nginx 要做到两头都是长连接:

  • C 端请求 => Nginx 代理:nginx 扮演 server
  • Nginx 代理 => 上游的 Server:naginx 扮演 client

思路和 nginx 在不同过程中的“角色”清除后,剩下就是配置了。

# Nginx 配置

# C 端到 Nginx

默认配置文件中已有:keepalive_timeout。为 0,禁用长连接;不为 0,代表长连接超时关闭时间。

除此之外,还有常用的:keepalive_requests。默认为 100,为一个长连接能接受的最大请求数。

# Nginx 到上游 Server

反向代理配置中,需要支持 keep-alive:

server {
    listen 80;
    server_name 193.112.241.232;

    location / {
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_pass http://myservers;
    }
}

到上游 Server 的配置:

upstream myservers {
    server 127.0.0.1:4445;
    server 127.0.0.1:4446;
    keepalive 100;
}

# 参考文章

本文来自心谭博客:xin-tan.com,经常更新web和算法的文章笔记,前往github查看目录归纳:github.com/dongyuanxin/blog