2016-09-23 92 views
0

我依賴的websocket庫(PHP-Websockets)尚不支持安全套接字(wss)。我的網站雖然服務於https,所以我不能使用不安全的ws連接。Apache mod_proxy:將安全websocket轉發到非安全

我試圖用Apache's mod_proxy將來自瀏覽器的安全請求轉發到客戶端。

的Javascript

var ws = new WebSocket('wss://example.com/_ws_/'); 

Apache的虛擬主機

ProxyPass  "/_ws_/" "ws://127.0.0.1:8080/" 
ProxyPassReverse "/_ws_/" "ws://127.0.0.1:8080/" 
# I've also tried "/_ws_/" "ws://example.com:8080/" Same error below 

在嘗試連接,瀏覽器接收一個500 Server Error。日誌顯示:

沒有協議處理程序對URL/_ws_ /有效。如果您使用的是mod_proxy的DSO版本,請確保代理子模塊包含在使用LoadModule的配置中。

我已經證實,如果我刪除了代理規則,停止將用戶重定向到https,並嘗試從瀏覽器連接到不安全插座:new WebSocket('ws://example.com/'),工作的事情就好了。

我裝入的Apache模塊包括mod_ssl.cmod_proxy.cmod_proxy_http.c

Apache 2.4

+0

我與bitnami tomcat棧有類似的問題。不幸的是我沒有足夠的技能來設置mod代理,並且我完全刪除了apache2 web服務器。但請看看這個對話,可能會有所幫助:https://community.bitnami.com/t/tomcat-8-websockets/39477/3 – degr

+0

@degr感謝您的鏈接 – BeetleJuice

+0

'mod_proxy_wstunnel'模塊呢? –

回答