WebSocket Proxying only working on local machine, fails on other machines in the network

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux