I've been looking for a PaaS provider with the same requirements as well,
and haven't had much luck. I've tried appFog, Heroku, no.de (when
it existed), and Nodejitsu and they all limit you to 1 (randomly assigned)
http/s port.
However, it's very easy to get node running on a vanilla Joyent
The problem these PaaS providers face is that http (and even https with
SNI) allow you to route incoming requests by hostname on a single IP
address.
Other TCP services (generally) do not allow this, forcing the provider to
give you a unique IP address. This is relatively straightforward for
Yep, but there are interesting ways to do things still, like STUN and SOCKS
bindings if you have a proxy of your own out there you can generally setup
the tunnel inside most PaaS. Generally though the PaaS is stuck to
preallocating port/host pairs and charging for them since most don't give
Well I work for Microsoft, so you can only imagine my experience using
Azure just cannot be bad ;). But seriously, there are several ways of
running node.js code in Azure:
- you can own a VM (Windows or Linux), where you can listen on whatever TCP
port you please and have the traffic load
Having worked on load balancers I can say load balancing multiple apps on
raw TCP is less than trivial. Basically you end up having to make users
declare their socket needs before hand, and you assign a host:port that
will map to their app inside the internals of the PaaS. If someone has good
You can listen on a TCP port to process arbitrary (non-HTTP) traffic using
WIndows Azure Cloud Services. There are two varieties: Web Role and Worker
Role. You need Worker Role. You can set up several instances and have
Windows Azure load balance traffic between them. Check out the tutorial
at