我有一个应用程序和soketi.appWeb服务器托管在AWS中。应用程序在负载平衡器后面提供服务。我可以很好地访问应用程序(443流量被转发到端口8788上的示例)。我通过WSS(SSL)协议与soketi服务器通信时遇到问题,错误为:无法连接到网站mydomain.com/6001/app/blahblah
我的目标是将Apache配置为WebSocket代理,而不是在浏览器和websocket服务器之间建立SSL连接。
Apache 2000-默认.conf(已安装并启用必要的apache mods):
<VirtualHost *:8788>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/public/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/public/>
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
</VirtualHost>
<VirtualHost *:6001>
ProxyPass /app ws://127.0.0.1:6001/app
ProxyPassReverse /app ws://127.0.0.1:6001/app
</VirtualHost>
安全配置json
{
"debug": true,
"appManager.array.apps": [
{
"id": "blah",
"key": "blah",
"secret": "blah"
}
]
}
1条答案
按热度按时间mo49yndu1#
解决方案归结为两件事:
我的应用程序在云中由两个容器组成,它们位于负载平衡器后面。应用程序容器使用端口8788。Websockets容器使用端口56112。
端口配置文件
000-默认.conf文件
将WebSocket(wss)请求代理到端口56113上本地运行的websocket服务器(ws)