我使用以下内容使nginx
使用我的websocket服务器:
server {
listen 80;
server_name streams.domain.com;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_pass http://192.168.1.52:80;
}
}
但是,我需要根据查询字符串参数更改目标。我将其更改为以下内容:
server {
listen 80;
server_name streams.domain.com;
location / {
if ( $arg_serverId = 1562182 ) {
return 101 http://192.168.1.52:80;
}
}
}
现在我得到错误Error during WebSocket handshake: 'Upgrade' header is missing
所以我尝试使用add_header
但是使用下面的配置我得到ERR_CONNECTION_TIMED_OUT
:
server {
listen 80;
server_name streams.domain.com;
location / {
if ( $arg_serverId = 1562182 ) {
add_header 'Upgrade' $http_upgrade;
add_header 'Connection' $connection_upgrade;
return 101 http://192.168.1.52:80;
}
}
}
那么我如何使用qazxsw poi条件并传递websockets所需的升级头?
我最终得到它与$arg_
合作。使用像map
这样的网址,以下内容很有用:
http://stream.domain.com?serverId=1001