0

I am trying to find a solution that will allow me to have one IP address/DNS Name across multiple servers using path-based rules (Layer 7). i.e - http://testing.test.com.au/ABC -> Server A and http://testing.test.com.au/123 -> Server B etc... It needs to be a fail over so that if Server A goes offline, only traffic to Server A is affected and all other traffic can access the corresponding server/s.

I have tried using MS Azure Application Gateway but this isn't working because it requires a default server and if that goes offline then all the other connections to the other servers won't work.

Can you please help with ideas/implementations that could work ASAP?

Thank you

Tyler
  • 1
  • 1
  • Does server A and server B run the same application? – Jason Ye Jun 23 '17 at 07:40
  • Hi Jason, each server serves a different application for a different customer. So I can't have round-robin etc... setup. I need direct access to each server for each site. – Tyler Jun 23 '17 at 09:45

3 Answers3

1

you should be able to use Application Gateway Path based routing , you can point the default to for example your company site and if the default site is down for whatever reason the path based rules will still work .

Fara
  • 11
  • 1
0

Using subdomains would do that by default i.e. with http://app1.example.com/ and http://app2.example.com/ one being down wouldn't affect the other at all.

If you have http://example.com/appN, the example.com is a single point of failure whether you redirect i.e. url changes to http://appN.example.com or reverse proxy i.e. url doesn't change.

With both options (redirect or proxy) you could have both/all the servers answering to http://example.com and load balance with DNS round robin. If you add a failure detection that automatically removes servers that doesn't answer, the maximum downtime would equal to the time-to-live TTL. For example Amazon Route 53 DNS Failover does exactly that.

Esa Jokinen
  • 46,944
  • 3
  • 83
  • 129
  • Thank you for your answer @Esa. The problem with this is, we host web apps to customers and we would like to separate each server to have 50 customers on each, but all the customers currently use the one (same) DNS name and changing that would be a nightmare. – Tyler Jun 23 '17 at 06:57
  • You could have 2-3 front-ends for proxying / redirecting `example.com` (with DNS failover), while the apps are running on `appN.example.com`. They could either be separate front-end servers or some of the application servers. – Esa Jokinen Jun 23 '17 at 07:04
  • Ah ok, so we would setup 'example.com' to point to 'appN.example.com' which that points to ServerA? Then what about all the other servers? Sorry I havn't used proxying before so don't understand at the moment but will look into it With the Application Gateway, we are currently forwarded traffic to specific servers depending on the URL, so http://example.com/TEST1 will go to Server A and http://example.com/TEST2 will go to Server B. Is there anyway to do this without a default assigned? It doesn't have to be MS Azure. – Tyler Jun 23 '17 at 07:08
0

According to your description, I think you are looking for Azure Traffic Manager.
Traffic manager is a DNS level load balancer, we can use Priority traffic-routing method or weighted traffic-routing method. enter image description here

More information about traffic manager, please refer to this link.

Jason Ye
  • 2,399
  • 1
  • 8
  • 10