Atualmente, estou tentando reunir uma prova de conceito sobre a mistura de várias tecnologias em um site para facilitar as migrações e adicionar flexibilidade.
A idéia é criar um site 'mashup' por trás de um proxy reverso ARR do IIS 7.5.
Por enquanto, o proxy reverso ARR encaminha todas as solicitações para o nosso site principal.
A solicitação é a seguinte:
client -> ARR: Get /
ARR -> Server 1: Get /
Server 1 -> ARR: 200: /index.htm
ARR -> client: 200: /index.htm
... até aí tudo bem.
Digamos que eu queira adicionar um novo site (raiz de outro servidor) como um subsite do meu site principal.
uma simples regra de entrada faz o truque:
<rule name="sub1" stopProcessing="true">
<match url="^mySubsite(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="http://server2/{R:1}" />
</rule>
Os pedidos agora são:
client -> ARR: Get /mySubsite
ARR -> Server 2: Get /
Server 2 -> ARR: 200: /index.htm
ARR -> client: 200: /index.htm
... ainda está bem.
O problema surge quando o site no servidor2 envia um redirecionamento (por exemplo, para uma página de login). No caso do SharePoint, ele redirecionará o usuário para: /_layouts/Authenticate.aspx?Source=%2F
... o que não existe:
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
Alguém sabe como gravar a regra de saída para reconfigurar a resposta do servidor 2 "301: /_layouts/Authenticate.aspx?Source=%2F" para "301: /mySubsite/_layouts/Authenticate.aspx?Source=%" 2FmySubsite% 2F "?