WebSocket durch SSL mit Apache-reverse-proxy
Auf der client-Seite, ich bin versucht, die wss-Verbindung:
var ws = new WebSocket("wss://wsserver.com/test")
und gibt einen Fehler zurück:
WebSocket connection to 'wss://wsserver.com/test' failed: Error during WebSocket handshake: Unexpected response code: 400
Den vollständigen Header sind:
Request-Header
GET wss://wsserver.com/test HTTP/1.1
Host: wsserver.com
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: https://website.net
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: en-US,en;q=0.8
Sec-WebSocket-Key: Tj9AJ5TKglNf5LoHsQTpvQ==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Antwort-Header
Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:https://website.net
Connection:close
Content-Length:18
Content-Type:text/plain; charset=utf-8
Date:Fri, 21 Apr 2017 21:03:45 GMT
Server:Apache/2.4.18 (Ubuntu)
Vary:Origin
X-Content-Type-Options:nosniff
Server-Seite ausgeführt wird, gehen Sie auf port 8888 hinter einem Apache reverse-proxy. Dies ist die Apache-Konfiguration:
<VirtualHost *:443>
ServerName website.com
ProxyPreserveHost On
ProxyRequests Off
ProxyPass "/" "wss://localhost:8888/"
mod_proxy und mod_proxy_wstunnel installiert sind.
Ist es etwas fehlt hier? Wie es scheint, der Antrag geht durch, aber es wird keine Verbindung hergestellt.
lcalhost
? Ist das ein Tippfehler?- ja, in der Tat, das war ein Tippfehler, aber es hat mein problem nicht lösen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Landete ich lösen dieses problem durch Verwendung dieser Konfiguration für den virtuellen host, der Filter-requests durch den HTTP-Header:
Lasse ich dies als Referenz, falls es anderen hilft,
RewriteRule ^/nodered/comms wss://localhost:1880/nodered/comms [P,L]
.@ pimgeek Kommentar:
Ich denke, statt
RewriteRule ^/nodered/comms wss://localhost:1880/nodered/comms [P,L]
könnten Sie genutzt haben $1 wie folgt:
RewriteRule ^/nodered/comms$ wss://localhost:1880/$1 [P,L]
Außerdem sollte diese Arbeit aswell:
RewriteRule ^/nodered/comms$ wss://localhost:1880$1 [P,L]
Bemerken, die nicht benötigt werden /nach dem Hafen, da $1 enthält bereits einen /am Anfang