10-19-2012 08:58 AM
I have implemented a solution on a Cisco ACE LB, which receives requests from the internet for https://website1.com/path, and proxies these to https://website2.com/path -- using the following configuration:
rserver host <snip>
ip address <snip>
inservice
action-list type modify http HTTP_MODIFY
header rewrite both host header-value "website1\.com" replace "website2.com"
serverfarm host <snip>
probe TCP_443
rserver <snip>
inservice
sticky ip-netmask 255.255.255.255 address source <snip>
timeout 60
timeout activeconns
replicate sticky
serverfarm <snip>
class-map match-all <snip>
10 match virtual-address <snip> tcp eq https
policy-map type loadbalance first-match <snip>
class class-default
sticky-serverfarm <snip>
action HTTP_MODIFY
ssl-proxy client <snip>
policy-map multi-match <snip>
class <snip>
loadbalance vip inservice
loadbalance policy <snip>
loadbalance vip icmp-reply active
nat dynamic 5 vlan <snip>
ssl-proxy server <snip>
This works, except that it is seemingly incapable of dealing with 301/302 redirects. These come back from the server with a location field of https://website2.com/path2 and this is sent to the client browser unchecked.
I have tried all manner of response rewrites, but cannot get any of them to do what I need them to. I have a suspicion that these are being treated as payload rather than header information by the ACE, but if anyone can clarify I'd be most grateful.
I *believe* the format should be something like:
header rewrite response host header-value "(.*)https://website2\.com(.*)" replace "%1https://website1.com%2"
(assuming the ACE is even capable of doing this) but this does not seem to work.
Any assistance gratefully received.
Solved! Go to Solution.
10-22-2012 03:19 AM
Hi,
Now
header rewrite response host header-value "(.*)https://website2\.com(.*)" replace "%1https://website1.com%2"
You should modify the location header if it is 301/302.
Something like below:
header rewrite response location header-value https://website2[.]com(.*)" replace "%1https://website1.com%2"
let me know if that works for you.
regards,
Ajay Kumar
10-22-2012 03:19 AM
Hi,
Now
header rewrite response host header-value "(.*)https://website2\.com(.*)" replace "%1https://website1.com%2"
You should modify the location header if it is 301/302.
Something like below:
header rewrite response location header-value https://website2[.]com(.*)" replace "%1https://website1.com%2"
let me know if that works for you.
regards,
Ajay Kumar
10-22-2012 04:08 AM
Thanks, much appreciated. I don't know why, but it didn't register with me that the "host/location" name was an actual HTTP matching mechanism -- for some reason I had thought it was just a label
This is now working perfectly, so I can now complete this project. Thanks!!
10-22-2012 04:13 AM
Good to hear that
regards,
Ajay Kumar
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide