2013-07-15 7 views
11

Ich habe ein Problem mit den Web-Sockets und meinem Reverse-Proxy-Apache, ich habe in der neuesten Version 2.4.5 aktualisiert und das Modul mod_proxy_wstunnel geladen.Reverse-Proxy mit Websocket mod_proxy_wstunnel

Die httpd.conf:

<VirtualHost *:80> 
ServerAdmin [email protected] 
ServerName www.toto.fr 
ServerAlias toto.fr 


ProxyPass /my_app http://1X.X.X.1:8080/my_app 
ProxyPassReverse /web_pmr http://1X.X.X.1:8080/my_app 
ProxyPassReverseCookiePath /my_app/
ProxyPassReverseCookieDomain localhost my_app 
ProxyRequests off 
ProxyTimeout 15 

#WEBSOCKETS 


ProxyPass /my_app/BasicWebsocketServlet ws://1X.X.X.1:8080/my_app/BasicWebsocketServlet retry=0 
ProxyPassReverse /my_app/BasicWebsocketServlet ws://1X.X.X.1:8080/web_pmr/BasicWebsocketServlet retry=0 


ErrorLog "logs/my_app_error.log" 
LogLevel debug 
CustomLog "logs/my_app_access.log" combined 
<Proxy *> 
     Order deny,allow 
     Allow from all 
</Proxy> 
</VirtualHost> 

Wenn ich in meinem lokalen URL testen, WebSockets arbeiten aber mit dem Reverse-Proxy-Apache, gibt es keine Spur in Tomcat-Protokolle.

+0

Was meinst du mit "keine Spur"? Werden die Anfragen an Tomcat weitergeleitet? – jimjag

Antwort

21

dieser Zeile:

ProxyPass /my_app http://1X.X.X.1:8080/my_app 

Erläuterung (von https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypass):

ProxyPass /my_app/BasicWebsocketServlet ws://1X.X.X.1:8080/my_app/BasicWebsocketServlet retry=0 

muss, bevor dieser kommen

Bestellinformation Proxypass Richtlinien

Die konfigurierte Proxypass und Pro xyPassMatch-Regeln werden in der Reihenfolge der Konfiguration überprüft. Die erste Regel, die übereinstimmt, gewinnt. Normalerweise sollten Sie in Konflikt stehende ProxyPass-Regeln sortieren, beginnend mit den längsten URLs. Andernfalls werden spätere Regeln für längere URLs durch frühere Regeln verborgen, die einen führenden Teilstring der URL verwenden. Beachten Sie, dass es eine Beziehung mit der Freigabe von Arbeitern gibt. Im Gegensatz dazu kann nur eine ProxyPass-Direktive in einem Standort-Block platziert werden, und der spezifischste Speicherort hat Vorrang.

Aus den gleichen Gründen müssen Ausschlüsse vor den allgemeinen ProxyPass-Richtlinien stehen.