Do I really need Apache/IBM HTTP server to use web sockets if I'm simply
using Apache/IBM HTTP server as a reverse proxy?

No, you don't need an additional web server like Apache or nginx to do
websockets and can instead just use nodejs. Depending on your Javascript
knowledge, running a Nodejs server is dead simple.

But I think that means I would have to write a lot of functionality myself
to make a production-worthy Node.JS web server. Why reinvent the wheel?

Depends on what you actually need. Given your very simple described
scenario I would guess Apache/nginx would be over-kill (i.e. extra jobs to
start/stop). Note that Nodejs is purported to serve up static content just
fine with add-ons**, which would typically be one argument for things like
Apache/nginx. I have not yet found stats as to how well that performs.
Doing something like that with RubyOnRails would cause many more CPU cycles
than necessary.

**https://github.com/expressjs/serve-static


Aaron Bartell

On Fri, Dec 26, 2014 at 9:41 AM, Kelly Cookson <KCookson@xxxxxxxxxxxx>
wrote:

Thanks for the info, Aaron.

Do I really need Apache/IBM HTTP server to use web sockets if I'm simply
using Apache/IBM HTTP server as a reverse proxy? All I want to do is pass
requests through the server to a Node.JS web server. The Node.JS web server
would in theory have access to various kinds of IBM i resources (spooled
files, data queues, data areas, DB2 files, COBOL/RPG/CL programs) via the
XML-based extensions IBM is delivering with Node.JS.

I understand that Node.JS has been created with an event-looping model to
handle high concurrency with good speed and low memory use. However, the
apps I make will be targeted at employees in our company, with no more than
a few hundred to a few thousand users in the foreseeable future. It's not
really scalability that I'm looking for in Node.JS. It's the server-side
access to IBM i resources using JavaScript.

I also understand that we could access a Node.JS web server directly and
not use a reverse proxy. But I think that means I would have to write a lot
of functionality myself to make a production-worthy Node.JS web server. Why
reinvent the wheel? I would prefer the capabilities of a tried and true web
server in front of my Node.JS server.

I was disappointed to learn that NGINX does not have the scalability on
Windows as it does on other operating systems. It has something to do with
the way the event-loop model is implemented in Windows. I assume you don't
have this problem running NGINX on the IBM i with the AIX port. Are you
running NGINX on the IBM i as a reverse proxy to a Node.JS web server?

I'm still new to all of this. Does any of the above sound like I'm heading
down a wrong path?

I'm all ears to any advice you or anyone else wants to offer.

Thanks,
Kelly

-----Original Message-----
From: WEB400 [mailto:web400-bounces@xxxxxxxxxxxx] On Behalf Of Aaron
Bartell
Sent: Friday, December 26, 2014 9:18 AM
To: Web Enabling the IBM i (AS/400 and iSeries)
Subject: Re: [WEB400] Reverse Proxy for Node.JS on IBM i

Hi Kelly,

Apache on IBM i still doesn't support Web Sockets and that is a mainstay
concept in Node.js apps. Note there is an Apache module that does Web
Sockets but it isn't included in the IBM i version yet (to my knowledge).

I have nginx running on IBM i based on the perzl.org AIX port (
http://www.perzl.org/aix/index.php?n=Main.Nginx) and nginx *does* support
Web Sockets.

Here are some stats on webserver popularity:

http://news.netcraft.com/archives/2014/05/07/may-2014-web-server-survey.html

Btw, I've setup a site on bitbucket.org where Node.js collaboration can
happen more easily: https://bitbucket.org/litmis/nodejs

Why did I set it up?
- We need a place to easily post/refine code examples**.
- We need a place to log tasks needing to take place (i.e. document nginx
setup on IBM i***).
- We need to start conditioning the IBM i community on how to use modern
tooling for "social coding" (i.e. Git + fork/pull)****

NOTE: bitbucket.org is a free service for public repos. Sign-up for a
profile.

**https://bitbucket.org/litmis/nodejs/src
***https://bitbucket.org/litmis/nodejs/issue/2/nginx-port-instructions
****https://bitbucket.org/litmis/nodejs/wiki/contribute

Aaron Bartell

On Wed, Dec 24, 2014 at 8:21 PM, Kelly Cookson <KCookson@xxxxxxxxxxxx>
wrote:

What are people's thoughts about running web servers as reverse
proxies for Node.JS servers on the IBM i?

I assume one could set up an IBM HTTP server as a reverse proxy for a
Node.JS server. The IBM HTTP server could handle static content; the
Node.JS server could deliver web services for dynamic content.

I also assume WebSphere web server could also be set up as a reverse
proxy for Node.JS. Would there be any benefits to using WebSphere
instead of the IBM HTTP server as a reverse proxy on the IBM i?

I currently have NGINX set up as a reverse proxy for a Node.JS server
on a windows machine (a learning environment). I like the fact that
NGINX and Node.JS are both event driven, making them fast and
scalable. I'm not sure I will ever really need the scalability NGINX
offers. IBM HTTP server will very likely meet all of my needs. Yet,
out of curiosity, does anyone know if there are plans to port NGINX
(or some other event driven web server) to the IBM i?

Thanks,

Kelly Cookson


--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400)
mailing list To post a message email: WEB400@xxxxxxxxxxxx To
subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/web400.


--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
list To post a message email: WEB400@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/web400.

--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.