2017-10-02 9 views
0

IIS 및 URL 재 작성을 reverseProxy로 사용합니다. 내 실제 웹 응용 프로그램은 인터넷에 직접 액세스 할 수없는 서버에서 호스팅됩니다.IIS에 해당하는 ProxyPassReverseCookieDomain

다시 쓰기 규칙에서 나는 역방향 프록시의 호스트 이름을 로컬 IP 주소로 바꿉니다. 이것은 잘 작동합니다.

그러나 내가 사용하는 응용 프로그램은 다운로드를 제공합니다. 클라이언트가 다운로드 요청을하면 서버 측 프로세스가 실제 다운로드 파일로 리디렉션합니다.

여기에는 문제가 있습니다. 리버스 프록시와 로컬 서버간에 세션 쿠키 (JSESSIONID)가 올바르게 공유되지 않은 것 같습니다. 다운로드 파일로 리디렉션되는 대신 로컬 서버에서 401 "not authorized"메시지가 표시됩니다.

나는 비슷한 질문을 여기에서 발견했다. How to properly set JSESSIONID cookie path behind reverse proxy 사용자가 Apache를 역방향 프록시로 사용하고 ProxyPassReverseCookieDomain을 사용하여 쿠키 도메인 이름을 다시 쓰려고했습니다.

IIS에도 비슷한 설정이 있습니까? 다음과 같은 아웃 바운드 규칙을 시도했지만 작동하지 않습니다.

<preCondition name="contains-domain-set-cookie-header"> 
    <add input="{RESPONSE_Set_Cookie}" pattern=".*?domain=MYDOMAIN*?" /> 
</preCondition> 
<rule name="rewrite cookie domain" preCondition="contains-domain-cookie-header"> 
    <match serverVariable="RESPONSE_Set_Cookie" pattern="^(.*?domain=)MYDOMAIN(.*?)$" negate="false" /> 
    <action type="Rewrite" value="{R:1}MYLOCALIP{R:2}" /> 
</rule> 

다른 방법이 있습니까?

감사합니다,

토마스

+0

가능한 apphost 설정 [IIS7 응용 프로그램 요청 라우팅을 사용하여 헤더 수정] (https://stackoverflow.com/questions/1842885/modifying- 머리글과 iis7 응용 프로그램 요청 라우팅) – Thomas

답변

0

업데이트 할 헤더 명령 줄에서이 실행 호스트를 유지하기 위해 대답 here

here 발견 기계/웹 루트/

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/proxy -preserveHostHeader:true /commit:apphost