Node.JS & express as a replacement for Apache httpserver

In my ongoing learning with Node.js i find at each turn im more and more surprised at just how much it can do for me. Recently this surprise took the form of a problem ive been having froa while now with configuring Apache for proxy and reverse proxy to multiple web apps on my local server.

Here’s the run down of the situation:

i have 4 main web-app’s running on my server for various reasons and on various ports

  • Transmission on port 9091
  • SickBeard on port 8081
  • CouchPotato on port 5000
  • sabznbd+ on port 8085
  • XBMC on port 8080
  • Ajenti on port 8000

Currently i can reach each service in turn by sticking in the port as part of the URL http://server:5000/ gets me CouchPotato for example, but this isnt the nicest of URL’s to remember so what i really want is http://server/couchpotato instead. So some quick googling later and i find out that i can configure my allready installed and running Apache httpserver to do this with proxies and reverse proxies, excilent, and it all looks relatively simple to modify a few htaccess and other such setup files.

NO SUCH LUCK i consider myself a reasonable software developer and a fairly advanced computer user, so modifying a couple of files and reading a few API docs are not beyond me, but for love nor money i cannot get this stuff to work.

Skip ahead 6 months of nasty urls

I wonder if Node can do this sor of thing, quick google later and i find node-http-proxy and a 3 minute express config file later and ive got my proxies working like a dream.

With this experience and others ive decided to uninstall Apache completely and reply on Node.JS as my sole web server for just now. Hopefully this will simplify my life dramatically.