Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I an not sure if this is possible or not but what i would like to do is as follows:

I have one IP address (dynamic using zoneedit.com to keep it upto date). I have one webserver running my main site which is an Ubuntu machine running Apache. I also have a windows 2008 server running another site. Just to confuse things I also run part of my Apache site on the windows server, currently using proxypassreverse to get the information from it. So it looks something like this:

IP 1.2.3.4

maps to mydomain.com as well as myotherdomain.com

All requests that come into port 80 are forwarded to the Apache box and I use Virtualhost settings to proxy the windows sites where needed.

so mydomain.com is an Apache site

mydomain.com/mywindowssection is the Apache server using proxypassreverse to get part of the site from the Windows server

myotherdomain.com uses Apache and proxypassreverse to get the whole site.

What I would like to be able to do is forward all http requests that come into my network to one machine that figures out who should be serving that content. so:

mydomain.com would go to the Apache machine myotherdomain.com would go the windows machine.

I am just in the process of setting up an Astaro gateway (never done this before so taking a while to configure) as my firewall, dns, dhcp etc, don't know if this can handle it. I have the capacity to run a VM on the network if a seperate box would be needed for this process as well.

Thanks for any and all feedback.

Jon

share|improve this question
    
I don't understand what you're trying to achieve. What you've asked for matches what you've already got -- an Apache server proxying requests for different domains to different machines as per your local policy. –  womble Jan 10 '10 at 23:08
    
I would like to remove the dependency on the Apache server. So that the routing is independent of the webserver, and ideally doesn't require proxying. Some of my services that I will be hosting will be asmx, rpc type stuff and would like to avoid any proxies that I can. Sorry for the confusion. –  Jon Jan 10 '10 at 23:36
    
well your going to need some kind of layer 7 proxy than can have a look at the http headers and 'route' it to the right box. If you don't want to use a proxy, you will need to give each site it's own ip address (public) and setup the rules to do that. Think about making it simpler. If it's simple, then it will be easier (or possible) to fix when it falls over. ' –  The Unix Janitor Mar 18 '10 at 14:08

1 Answer 1

I'm not 100% clear on what your goal is, but there's a Unix reverse proxy program called pound (likely available in the Ubuntu package repo) that will allow you to redirect HTTP requests to different back-end servers based on matching expressions.

So you would have pound running on your front-end Ubuntu server on port 80. On the back-end, you'd have Apache+Ubuntu running on some other port (8080, for example) and the Windows server(s) running on some port(s). You then tell pound which back-end server/port to forward the request to for each domain and/or URL regular expression you need to sort the requests by.

I'm unsure why you wish to avoid a proxy in the mix, as this is exactly what you do need. I don't believe you can accomplish what you need without one. As far as such proxies go, pound is pretty small and fast. If it's caching you wish to avoid, due to the use of dynamic content, pound does not do any caching.

share|improve this answer
    
Hi Geoff, sounds interesting. The reason I wanted to avoid the proxy was that some of my apps (C#) connecting to a webservice went horribly wrong. The windows server behind the proxy picked up a local IP rather than routing to the correct client. I ended up having to run the ASMX on port 81 and punch another hole in the firewall. –  Jon Jan 11 '10 at 10:53
    
Think about reducing complexity, i know it's difficult to achieve with every protocol on the internet now wanting to run over port 80 inside http requests :-(. –  The Unix Janitor Mar 18 '10 at 14:12

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.