我正在开发一个web-socket项目,我希望web-socket牛仔服务器能够监听8080端口,但是要将消息转发到另一个端口。我能这样做吗? 任何帮助表示赞赏
答案 0 :(得分:2)
你转发到另一个端口的意思是什么意思? cowboy的处理程序正在处理到达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:// {your server} / myws
并在上面的配置中监听端口需要更改为80。