2013-07-15 25 views
11

Ho un problema con le prese web e il mio proxy inverso Apache, ho aggiornato l'ultima versione 2.4.5 e caricato il modulo mod_proxy_wstunnel.Reverse proxy con websocket mod_proxy_wstunnel

Il 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> 

Quando ho test nel mio URL locali, WebSockets stanno lavorando, ma con il proxy inverso Apache, non v'è alcuna traccia nei registri Tomcat.

+0

Cosa intendi per "nessuna traccia"? Le richieste vengono inoltrate a Tomcat? – jimjag

risposta

21

Questa linea:

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

deve venire prima di questo:

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

Spiegazione (da https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypass):

ordinazione direttive ProxyPass

La configurato ProxyPass e Pro Le regole di xyPassMatch sono verificate nell'ordine di configurazione. La prima regola che corrisponde alle vittorie. Pertanto, in genere, è necessario ordinare regole ProxyPass in conflitto che iniziano prima con gli URL più lunghi. In caso contrario, le regole successive per URL più lunghi verranno nascoste da qualsiasi regola precedente che utilizza una sottostringa principale dell'URL. Nota che c'è qualche relazione con la condivisione dei lavoratori. Al contrario, solo una direttiva ProxyPass può essere inserita in un blocco Location e la posizione più specifica avrà la precedenza.

Per gli stessi motivi, le esclusioni devono precedere le direttive generali ProxyPass.