我正在开发一个 web-socket 项目,我希望 web-socket 牛仔服务器监听 8080 端口,但将消息转发到另一个端口。我可以这样做吗?任何帮助表示赞赏
问问题
803 次
1 回答
2
将消息转发到另一个端口是什么意思?牛仔的处理程序正在处理到达您的 websocket 的消息。您可以将它们重定向到您喜欢的任何地方。但是,我认为您真正追求的是面向牛仔的代理。如果是这种情况,您应该将 nginx 视为前端。安装后,您可以提供以下配置:
http {
...
server {
listen 443
...
location ~ ^/myws/
{
proxy_pass http://127.0.0.1:8080 ;
proxy_http_version 1.1 ;
proxy_set_header Upgrade $http_upgrade ;
proxy_set_header Connection "upgrade" ;
proxy_connect_timeout 60 ;
proxy_read_timeout 86400 ;
proxy_send_timeout 86400 ;
proxy_ignore_client_abort off ;
proxy_redirect off ;
}
...
}
....
}
这将使您能够在您喜欢的任何端口(在您的示例中为 8080)上运行牛仔监听,同时让 nginx 在将 websocket 请求转发给牛仔时照顾您的 SSL 需求。客户端可以连接@
wss://{你的服务器}/myws
如果不需要 SSL 地址将
ws://{你的服务器}/myws
并且上面配置中的监听端口需要更改为80。
于 2014-05-28T11:22:26.537 回答