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.c
,mod_proxy.c
和mod_proxy_http.c
Apache 2.4
我與bitnami tomcat棧有類似的問題。不幸的是我沒有足夠的技能來設置mod代理,並且我完全刪除了apache2 web服務器。但請看看這個對話,可能會有所幫助:https://community.bitnami.com/t/tomcat-8-websockets/39477/3 – degr
@degr感謝您的鏈接 – BeetleJuice
'mod_proxy_wstunnel'模塊呢? –