mixing different technologies using ARR reverse proxy
Posted
by
Jaepetto
on Server Fault
See other posts from Server Fault
or by Jaepetto
Published on 2012-06-21T19:54:30Z
Indexed on
2012/06/21
21:17 UTC
Read the original article
Hit count: 257
I'm currently trying to put together a proof of concept on mixing various technologies onto one web site in order to ease migrations and add flexibility. The idea is to create one 'mashup' site behind an IIS 7.5 ARR reverse proxy.
For the time being the ARR reverse proxy forwards all request to our main site. The request are as follow:
client -> ARR: Get /
ARR -> Server 1: Get /
Server 1 -> ARR: 200: /index.htm
ARR -> client: 200: /index.htm
...so far so good.
Let's say, I want to add a new site (root of another server) as a subsite of my main website. a simple inbound rule does the trick:
<rule name="sub1" stopProcessing="true">
<match url="^mySubsite(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="http://server2/{R:1}" />
</rule>
The requests now are:
client -> ARR: Get /mySubsite
ARR -> Server 2: Get /
Server 2 -> ARR: 200: /index.htm
ARR -> client: 200: /index.htm
... still ok.
The issue comes when the site on server2 sends a redirection (e.g. to a login page). In the case of SharePoint, it will redirect the user to: /_layouts/Authenticate.aspx?Source=%2F ...which does not exists:
client -> ARR: Get /mySubsite
ARR -> Server 2: Get /
Server 2 -> ARR: 301: /_layouts/Authenticate.aspx?Source=%2F
ARR -> client: 301: /_layouts/Authenticate.aspx?Source=%2F
client -> ARR: Get /_layouts/Authenticate.aspx?Source=%2F
ARR -> client: 404: Not Found
Does anyone know a way write the outbound rule to rewrite the response from server 2 "301: /_layouts/Authenticate.aspx?Source=%2F" to "301: /mySubsite/_layouts/Authenticate.aspx?Source=%2FmySubsite%2F"?
© Server Fault or respective owner