Tim Steele's picture

I'm looking to run multiple virtual appliances on one Hyper-V host (Namely, wordpress, torrent server, and simpleinvoices). My goal is to have the following names point to the appliances:

www.mydomain.com (Wordpress)

invoice.mydomain.com (simpleinvoices)

torrent.mydomain.com (torrent server)

I have A records with my DNS (through network solutions) for each of those pointing to my external IP, but I'm not sure where to go from there. I considered forwarding arbitrary external ports to each vapp's port 80 (10080, 10081, etc or something like that), but I'd like to not have to specify ports when I type the addresses (i.e. invoice.mydomain.com:10080).

What do I need to do to make that happen? Is it even possible with seperate virtual appliances?


Apologies if the above is completely incoherent and unintelligible -- it's 2 in the morning over here...

Jeremy Davis's picture

Somehow I missed your post...

Yes it is totally possible, but you'll need a reverse proxy to accept the incoming requests and reroute them to the relevant internal VM. Apache (and AFAIK all the common webservers such as LigHTTPd, Nginx can do it) but the config appears to be a little involved (I've never actually done it but have read about it). Also seeing as you are using a Windows host, I have read that IIS is capable too but I've never even looked.

I did come across a purpose built reverse proxy called Pound. That looked really easy and straightforward to configure and whilst it apparently doesn't give the best performance, it's probably a great starting point. It should be in the repos (i.e. install with 'apt-get update && apt-get install pound').

So to clarify I see 3 options:

  • Configure Apache in one of your existing VMs (probably WordPress or SImpleInvoices) to be a reverse proxy. I.e. accept all the domain names, serve the relevant one and forward the others onto the relevant VM).
  • Set up a dedicated reverse proxy. You could use LAMP or one of the other webstack appliances and tweak the config for use as a reverse proxy, or IMO a better option would be to use Core and install just what you need.
  • Use IIS on your host to provide the reverse proxying to the VMs.

Regardless of which way you go, just point all the domains to the reverse proxy and let it redirect to the relevant VM.

Sorry I can't give you explicit instructions. Also it'd be great if you document your steps and post back when you're done. If you get stuck also post back, although I'm not sure how much help I'll be... I'll do my best though! :)

Add new comment