Ich bin mit meiner Apache-Konfiguration stecken und freue mich über jede Hilfe zu diesem Thema.Wie Proxy WebSocket über Apache zu Play-Framework
Die Config ist wie folgt:
- Der Apache leitet den gesamten HTTP-Verkehr auf https
- Es Proxys Anfragen wie https://domain.tld/app1 zu http://domain.tld:9000/app1 (Play-Apps im App-Kontext ausführen/app */...)
Diese sehr gut mit dem folgenden Apache-config funktioniert:
<VirtualHost *:80>
ServerName domain.tld
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Redirect permanent/https://domain.tld/
Redirect permanent/https://domain.tld/
</VirtualHost>
<VirtualHost _default_:443>
#ssl-config here
<Proxy http://localhost:9000/*>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /app1 http://domain.tld:9000/app1
ProxyPassReverse /app1 http://domain.tld:9000/app1
ProxyPassReverse /app1 http://domain.tld/app1
</VirtualHost>
Das Problem ist, dass eine Spielanwendung einen WebSocket hinzugefügt hat. Was mit dem obigen Setup nicht funktioniert. Also habe ich die Sachen auf der play-pages gelesen. Was mich dazu brachte, mod_proxy_wstunnel zu installieren. Ich füge auch die folgenden Zeilen in die Config, hatte aber keinen Erfolg damit:
ProxyPass /app1/timerWs ws://domain.tld:9000/app1/timerWs
ProxyPassReverse /app1/timerWs ws://domain.tld:9000/app1/timerWs
Wenn ich versuche zu https://domain.tld/rlc/timerWs ich einen 500 Internal Server Error bekam zu verbinden, aber es gibt keinen neuen, spezifischen Fehler im apache Fehlerprotokoll.
Wie kann ich Apache so konfigurieren, dass WebSocket-Anfragen an meine Spielanwendungen ordnungsgemäß weitergeleitet werden?
Meine Spiele-Apps haben keine https-Adapter. Alle https-Sachen werden vom Apache-Proxy erledigt.
Play-Apps sind auf Version 2.5. Apache ist am 2.4.7.
Vielen Dank für Ihre Hilfe. Tobias