Nginx WSS 代理:使用参数代理不同服务器的 WebSocket 连接
使用 Nginx 作为代理服务器,可以通过 WSS 协议代理不同服务器的 WebSocket 连接。以下是一个简单的示例配置,可以使用变量来代理不同的服务器:
http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream server1 {
server 1.2.3.4:8080;
}
upstream server2 {
server 5.6.7.8:8080;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location /ws {
proxy_pass http://$arg_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
}
}
}
在这个配置中,我们定义了两个 upstream 块,分别代表不同的服务器。然后,在 location 块中,我们使用 $arg_server 变量来指定要代理的服务器。例如,如果客户端请求的 URL 是 /ws?server=server1,那么代理就会转发到 server1。如果请求的 URL 是 /ws?server=server2,那么代理就会转发到 server2。
原文地址: https://www.cveoy.top/t/topic/mUmZ 著作权归作者所有。请勿转载和采集!