Indeed, I stand corrected. My experience with WebSockets and Apache was
only with Apache 2.2 and it looks like mod_proxy_wstunnel does address the
fundamental issues I experienced with previous versions in proxying
WebSockets. The configuration in Apache does look simple, but the
documentation could be expanded on.
http://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html
I wonder how you would do sticky sessions with it? These kinds of details
is what Passenger helps with for us non-experts in Apache and nginx. Apache
may still have some issues with WebSockets that Passenger is working on
fixing. https://github.com/phusion/passenger/issues/1202 Generally the
Passenger folks just suggest you use nginx as it is known to work well with
WebSockets.
Jason
On Fri, Dec 12, 2014 at 8:58 AM, Adam Constabaris <[log in to unmask]
> wrote:
> We are getting a bit afield, but I cry "CALUMNY" and I call out my esteemed
> colleague for attempting to place an unqualified smirch on the good name of
> Apache httpd. I don't think there's evidence to establish that Apache's
> "prefork" MPM (the default Multi Processing Model used by default on *nix)
> directly impacts its utility for use as a websockets proxy (also: Apache
> offers more processing models these days, including the 'event' MPM which
> is rather more like nginx). Rather, it's the lack in Apache 2.2 of a proxy
> module designed to specifically support websockets. This has been
> addressed in Apache 2.4 with mod_proxy_wstunnel.
>
> cheers,
>
> AC
>
>
>
>
>
>
> On Thu, Dec 11, 2014 at 1:22 PM, Jason Ronallo <[log in to unmask]> wrote:
>
> > Junior,
> >
> > Not exactly your question, but there are sometimes reasons to proxy your
> > node.js app behind another Web server (say to share a domain or subdomain
> > with other applications or content without using a new public port).
> Choose
> > nginx in that case if you can. There are good tutorials for setting up
> > node.js apps as an upstream of nginx. The evented model of nginx works
> > better in cases where you're using some of the things node.js (or should
> I
> > be saying io.js these days?) excels at like keeping WebSocket connections
> > open. You'll generally get better concurrency and memory use with nginx
> in
> > these cases. Apache's blocking and threaded model is not suitable for
> > things like WebSockets. I can't say I fully understand all this, but from
> > what I've read and experienced it is true.
> >
> > Reading David Naughton's post: I recommend Passenger to folks who aren't
> > system admins and want to run Ruby, node.js, or wsgi applications. nginx
> is
> > very easy to install using Passenger's installer and then you can choose
> to
> > use Passenger or not. If you use Passenger and your node app is not set
> up
> > to deal with multiple instances spawning then you will run into issues,
> so
> > you'll want to set the maximum instances for your application in
> Passenger
> > config to 1.
> >
> > Jason
> >
> > On Thu, Dec 11, 2014 at 12:03 PM, Junior Tidal <[log in to unmask]
> >
> > wrote:
> >
> > > Hi all,
> > >
> > > I'd like to experiment with node.js on our production server to create
> a
> > > small calendar app.
> > >
> > > I was wondering if it's better to run node.js on the same server with
> > > Apache, or to set it up a separate cloud instance?
> > >
> > > I'm not sure if one is better than the other.
> > >
> > > Best,
> > >
> > > Junior Tidal
> > > Assistant Professor
> > > Web Services and Multimedia Librarian
> > > New York City College of Technology, CUNY
> > > 300 Jay Street, Rm A434
> > > Brooklyn, NY 11201
> > > 718.260.5481
> > >
> > > http://library.citytech.cuny.edu
> > >
> >
>
|