2017-03-31 624 views
0

我们已经设置了Apache2的反向代理,以隐藏URL中的端口,并在后面的阶段中保护我们与SSL的连接。websocket协议不支持通过Apache2反向代理

我们在AWS ECR上运行Hawkbit Java容器。我们通常去到服务的网页输入

ip:port/UI 

我们的实习导师想进入IP/UI去网页。我们已经建立了一个Apache2反向代理,并且能够转到ip/UI的网页。

但是,当我们以管理员身份登录时,我们无权执行任何操作。我们通过在Firefox上使用F12来检查流量,并且在尝试建立websocket时发生501错误。

我们还在AWS上使用应用程序ELB。 我们一直在努力,下面添加到我们的conf文件:

ProxyPass   /UI ws://ip:port/UI 
ProxyPassReverse /UI ws://ip:port/UI 

,但没有效果。

+0

不能编辑但是,您应该将两个ProxyPass行放在“代码”中 - 语法(只需在前面放置4个空格,并在空格之上) –

+0

我的答案是否适合您?将欣赏一个简短的反馈:) –

回答

0

看一看THIS - >mod_proxy_wstunnel

[...] 该模块需要的mod_proxy的服务。它支持将网络套接字连接隧道连接到后端websockets服务器。连接被自动升级为WebSocket连接: HTTP响应

Upgrade: WebSocket 
Connection: Upgrade 

请求代理像echo.websocket.org一个WebSockets的服务器可以使用ProxyPass指令来完成:

ProxyPass "/ws2/" "ws://echo.websocket.org/" 
ProxyPass "/wss2/" "wss://echo.websocket.org/" 
+0

我试过这个,但是当我检查连接,websocket头获得501响应,并没有得到升级 – davythomas