本章教程,主要介绍一下在宝塔面板中如何配置websocket wss的具体过程。
目录
map $http_upgrade $connection_upgrade
是Nginx中的映射指令,用于根据请求头中的Upgrade
字段的值来设置Connection
字段的值。在WebSocket协议中,当客户端发起WebSocket连接时,会在请求头中包含
Upgrade
字段,值为websocket
。为了确保Nginx正确处理WebSocket连接,需要将Upgrade
字段的值设置为upgrade
,同时将Connection
字段的值设置为upgrade
。这个映射指令的作用是,当
$http_upgrade
的值为websocket
时,将$connection_upgrade
的值设置为upgrade
;当$http_upgrade
的值为空时,将$connection_upgrade
的值设置为close
。通过这个映射指令,Nginx可以根据请求头中的
Upgrade
字段的值来正确设置Connection
字段的值,从而实现对WebSocket连接的支持。
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
location / {
proxy_pass https://wss.bbb.com;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
?通过域名测试的时候,需要对特定的端口进行开放,比如443,默认情况是不开放的,有防火墙的需要设置允许特定端口进行访问,否则可以会导致配置完成之后,不能建立连接。
推荐一个在线websocket测试工具,可以方便验证是否配置成功。
在线websocket调试工具:websocket/ws/wss在线调试测试工具