문제

Tomcat 앞에서 IIS7 응용 프로그램 요청 라우팅을 ISAPI 리디렉션 대체로 사용하고 있습니다. 기본 리버스 프록시 함수는 잘 작동하지만 최종 요청 헤더에 충분한 정보가 없습니다. 내 응용 프로그램은 CustomerOne.ourservice.com, customertwo.ourservice.com 등 여러 하위 도메인에 존재합니다. 각 하위 도메인은 동일한 응용 프로그램을 실행하지만 다른 브랜딩 그래픽을 사용합니다.

응용 프로그램은 현재 호스트 헤더를 검토하여 어떤 브랜딩을 표시할지 알려줍니다. IIS7 리버스 프록시를 사용하면 해당 정보가 손실됩니다. 내 헤더는 이제 다음과 같습니다.

accept = text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
accept-charset = ISO-8859-1,utf-8;q=0.7,*;q=0.7
accept-encoding = gzip,deflate
accept-language = en-gb,en;q=0.7,en-us;q=0.3
cookie = JSESSIONID=......
host = 127.0.0.1:8080
max-forwards = 10
user-agent = Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15
x-original-url = /
x-forwarded-for = [iis7ip]:47567
x-arr-log-id = affbf81c-a5cf-4212-a43b-901cd9adcee6
connection = Keep-Alive

리버스 프록시가 전달한 요청 헤더에 원래 호스트 헤더를 삽입 할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

애플리케이션 요청 라우팅에는 원래 호스트 헤더 (PreserveHostheader)를 보존 할 수있는 옵션이 있습니다. 이 옵션은 기본적으로 false입니다. 다음과 같이 활성화 할 수 있습니다.

"C:\Windows\System32\inetsrv\appcmd.exe" set config -section:system.webServer/proxy /preserveHostHeader:"True" /commit:apphost

다른 팁

당신은 설정할 수 있습니다 preserveHostHeader 손으로 깃발.

    <proxy enabled="true" preserveHostHeader="true" />

</system.webServer>

IIS 구성 GUI 에서이 값을 아래에서 찾을 수 있습니다. system.webServer/proxy.

enter image description here

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top