nginx proxy_pass 使用变量后,无法代理websocket

新手上路,请多包涵

想使用nginx反向代理websocket,如果proxy_pass的网址是固定的,比如http://10.77.139.52:8989,就没有问题。
但是需求是动态代理,所以想尝试一下set变量后再代理,但是尝试了很多次发现这样无法建立websocket链接。是完全没有尝试建立连接,而不是连接被拒。
nginx配置如下,对nginx源码不太了解,不清楚使用set后有什么不同,求各位大神指教~~

    location /proxy/ {
        set $url 10.77.139.52;
        proxy_pass http://$url:8989/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_read_timeout 86400;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        #auth_request  /api.php;
        #auth_request_set $url $sent_http_url;
    }
阅读 4.8k
1 个回答
http 
{
    ...
    upstream myserver {
        server xxx.xxx.xxx.xxx:80
    }
}
server 
{
    ...
    proxy_pass http://myserver;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题