Nginx-WebSocket(八)
1. Nginx 配置 WebSocket
具体步骤如下:
- 创建
Nginx
配置文件8004.conf
- 刷新
Nginx
配置文件
1.1. 实现步骤
创建
Nginx
配置文件8004.conf
Nginx
配置文件路径:/etc/nginx/conf.d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25# 将 $http_upgrade 变量映射到 $connection_upgrade 变量
# $http_upgrade 变量通常用于表示客户端请求是否支持 WebSocket。
# 如果客户端请求支持 WebSocket,则 $http_upgrade 变量的值为 "websocket";否则,它的值为空字符串。
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# 虚拟主机server块
server{
# do something ...
# 监听 /message 路径的请求
location ^~ /message {
proxy_pass http://server:port;
# 表示使用 HTTP/1.1 协议
proxy_http_version 1.1;
# 表示将 Upgrade 头设置为 $http_upgrade。在http请求头中加入了 Upgrade: websocket
proxy_set_header Upgrade $http_upgrade;
# 表示将 Connection 头设置为 "upgrade"。在http请求头中加入了 Connection: Upgrade
proxy_set_header Connection $connection_upgrade;
}
}刷新
Nginx
配置文件1
2
3
4
5[root@VM-0-9-centos conf.d]# /usr/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@VM-0-9-centos conf.d]# /usr/sbin/nginx -s reload
[root@VM-0-9-centos conf.d]#
2. WebSocket 长时间不进行推送
- 方案一:通过
proxy_read_timeout
超时连接时长解决
1 | # 监听 /message 路径的请求 |
- 方案二:通过前端设置定时器,进行
WebSocket
进行心跳请求
1 | timer=setInterval(function() { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Wickson Blog!
评论