Here's the setup. I have an application gateway configured with two backend pools:
BAP 1: VMs 1, 2, 3
BAP 2: VM 1
I have two listeners:
Listener 1: web1.mysite.com
Listener 2: web2.mysite.com
HTTP settings:
setting1: HTTPS
setting2: HTTPS
I have two rules:
Web site 1: mapped to BAP 1, listener 1, setting1
Web site 2: mapped to BAP 2, listener 2, setting2
What I want to happen is for all requests to web site 2 (web2.mysite.com) to go to only VM 1 (via the rule mapping). My set up seems to reflect that.
But yet I'm seeing traffic in the IIS logs for web site 2 on all three VMs. How is this possible? I've tried non-overlapping pools (i.e. pool 1 contains only VMs 2 and 3, and pool 2 contains only VM1) but I'm still getting traffic to all three machines when hitting web2.mysite.com.
My backend health shows VMs 1, 2, 3 are healthy for HTTP setting1, and VM 1 is healthy for HTTP setting2. Which is what I expect. There are no unhealthy probes. On VMs 2 and 3, just for good measure, I purposefully set up web2.mysite.com and made sure the file specified in the health probe is absent (i.e. should make the health probe think the site was down, if the health probe was even looking at VMs 2 and 3, which it should not be).
My thinking is there's some kind of order-of-processing issue happening, but I'm at a loss otherwise.
Thank you in advance!