Hello fellow Apache Users ;)
I'm new to this mailing list and I hope to be able to contribute to this list as much as I hope to gain knowledge from it :)
I'm stuck while configuring my web server (unfortunately I'm bound to a Windows machine and I must not switch to *nix because of company policy). The web server consists of the following components:
# Tomcat 7.0.42
# Apache 2.4.6
# Windows 7 Ultimate 64bit
I have to use WebSockets as the web application depends heavily on this new technology and it is also not only a "nice to have" but nearly a "must" to get the application up and running. The web application itself consists of TWO applications - an authentication "server" and the application itself. Both of them are independent WARs at Tomcat and proxied by the Apache httpd. I use the Atmosphere Framework to implement WebSockets in the backend, and the jquery.atmosphere.js _javascript_ library to implement WebSockets in the frontend.
Here's my configuration:
############################# httpd-vhosts.con ############################
<VirtualHost _default_:80>
ServerName localhost
RewriteEngine on
RedirectMatch ^/$ /bloggofant/
RewriteRule ^/bloggofant$ /bloggofant/ [R]
RewriteRule ^/bloggofant/authenticated$ /bloggofant/authenticated/ [R]
ProxyRequests Off
ProxyPreserveHost On
ProxyVia On
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
#ProxyHTMLLogVerbose On
LogLevel debug
ProxyHTMLEnable On
ProxyHTMLBufSize 102400
ProxyHTMLExtended On
ProxyHTMLStripComments Off
ProxyHTMLDocType "<!DOCTYPE html>" XML
ProxyHTMLMeta On
DocumentRoot "${SRVROOT}/htdocs/"
ProxyPass /bloggofant/authenticated/websock ws://localhost:8080/BloggoFantApp/websock
<Location /bloggofant/authenticated/websock>
ProxyPassReverse ws://localhost:8080/BloggoFantApp/websock
ProxyHTMLURLMap /BloggoFantApp/websock /bloggofant/authenticated/websock
</Location>
ProxyPass /bloggofant/authenticated/ ajp://localhost:8009/BloggoFantApp/
ProxyHTMLURLMap ajp://localhost:8009/BloggoFantApp /bloggofant/authenticated/
<Location /bloggofant/authenticated/>
ProxyPassReverse ajp://localhost:8009/BloggoFantApp/
SetOutputFilter proxy-html
ProxyHTMLURLMap /BloggoFantApp/ /bloggofant/authenticated/
ProxyPassReverseCookiePath /BloggoFantApp/ /bloggofant/authenticated/
#RequestHeader unset Accept-Encoding
</Location>
ProxyPass /bloggofant/ ajp://localhost:8009/BloggoFantAuthentication/
ProxyHTMLURLMap ajp://localhost:8009/BloggoFantAuthentication /bloggofant/
<Location /bloggofant/>
ProxyPassReverse ajp://localhost:8009/BloggoFantAuthentication/
SetOutputFilter proxy-html
ProxyHTMLURLMap /BloggoFantAuthentication/ /bloggofant/
ProxyPassReverseCookiePath /BloggoFantAuthentication/ /bloggofant/
#RequestHeader unset Accept-Encoding
</Location>
</VirtualHost>
###########################################################################
If I access the web application from the machine where my web server is running, all is fine and the websocket connect is established as awaited, _but_ if I try to access the application from another machine in the network, the websocket connection is not working anymore and I can't see why? It seems like the "ProxyPassReverse" within the websock location is not working correctly as I see the frontend _javascript_ trying to open the websocket connection and also the backend logging the attempt, but it seems that the response is never sent!?
Does anybody have a hint or could give me some advice on this topic? Even if it's only a 'best guess' - every response is highly appreciated! If you need more information, please don't hesitate to ask! ;)
cheers
heinz