server ip1:port1;
server ip2:port2;
keepalive 1000;
}
server {
listen 20038;
location /{
proxy_http_version 1.1;
proxy_pass http://wsbackend;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 3600s;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
接下来,我们就分别分析上述配置的具体含义。
首先:
map $ht 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 tp_upgrade $connection_upgrade {
default upgrade;
‘’ close;
}
表示的是:
-
如果 $http_upgrade 不为 ‘’ (空),则 $connection_upgrade 为 upgrade 。
-
如果 $http_upgrade 为 ‘’ (空),则 $connection_upgrade 为 close。
其次:
upstream wsbackend{
server ip1:port1;
server ip2:port2;
keepalive 1000;
}
表示的是 nginx负载均衡:
-
两台服务器 (ip1:port1)和(ip2:port2) 。
-
keepalive 1000 表示的是每个nginx进程中上游服务器保持的空闲连接,当空闲连接过多时,会关闭最少使用的空闲连接.当然,这不是限制连接总数的,可以想象成空闲连接池的大小,设置的值应该是上游服务器能够承受的。
最后:
server {
listen 20038;
location /{
proxy_http_version 1.1;
proxy_pass http://wsbackend;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 3600s;