我正在做一个web-socket项目,我想要web-socket牛仔服务器监听8080端口,但要转发消息到另一个端口。我可以这么做吗?
将消息转发到另一个端口是什么意思?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 ;
}
...
}
....
}
这将允许你在任何你喜欢的端口上运行cowboy侦听(在你的例子中是8080),同时让nginx在转发websocket请求到cowboy时照顾你的SSL需求。客户端可以连接@
wss://{服务器}/myws
如果你不需要SSL地址将是
上面配置中的ws://{你的服务器}/myws
和监听端口需要更改为80