헤더 값을 URL에 매개변수로 넣는 역방향 프록시

헤더 값을 URL에 매개변수로 넣는 역방향 프록시

원래 요청의 헤더 값을 매개변수로 대상 URL에 추가하는 역방향 프록시를 설정해야 합니다. 그 이유는 순전히 애플리케이션에 따라 다르며 불행하게도 이 애플리케이션을 변경할 수 없습니다. 예를 들어 다음이 필요합니다.https://a.comhttp 헤더 myparam=abcd를 사용하면 다음으로 프록시되어야 합니다.http://b.com/?val=abcd

이러한 작업을 수행하도록 IIS 또는 Apache를 구성할 수 있습니까? 그렇다면 어떻게 설명할 수 있나요?

답변1

Apache 2.4에서 테스트되었습니다.

# (In a VirtualHost for a.com)
RewriteEngine on
RewriteRule ^(.*)$ http://b.com$1?val=%{HTTP:myparam} [QSA,P]

예시 재작성(헤더에 myparam값이 있는 경우 myvalue):

  • a.com된다http://b.com?val=myvalue
  • a.com/path/here된다http://b.com/path/here?val=myvalue
  • a.com/path?a=b&c=d된다http://b.com/path?a=b&c=d&val=myvalue

헤더 myparam가 없으면 a.com/x로 리디렉션됩니다 http://b.com/x?val=. 로 리디렉션하려면 http://b.com/x위의 다음과 같은 더 긴 버전을 사용할 수 있습니다.

RewriteEngine on
RewriteCond %{HTTP:myparam} .
RewriteRule ^(.*)$ http://example.com$1?val=%{HTTP:myparam} [QSA,L,P]
RewriteRule ^(.*)$ http://example.com$1 [P]

관련된 링크들:

답변2

IIS의 경우 다음을 사용할 수 있습니다.URL 재작성 확장:

IIS URL Rewrite 2.0을 사용하면 웹 관리자는 사용자가 더 쉽게 기억하고 검색 엔진에서 더 쉽게 찾을 수 있는 URL을 구현하는 강력한 규칙을 만들 수 있습니다. 규칙 템플릿, 재작성 맵, .NET 공급자 및 IIS 관리자에 통합된 기타 기능을 사용하여 웹 관리자는 HTTP 헤더, HTTP 응답 또는 요청 헤더, IIS 서버 변수 및 심지어 복잡한 내용을 기반으로 URL 재작성 동작을 정의하는 규칙을 쉽게 설정할 수 있습니다. 프로그래밍 규칙. 또한 웹 관리자는 재작성 규칙에 표현된 논리에 따라 리디렉션을 수행하거나, 사용자 지정 응답을 보내거나, HTTP 요청을 중지할 수 있습니다.

작동 대상: IIS 7, IIS 7.5, IIS 8

연습은 다음에서 찾을 수 있습니다. URL 재작성 모듈에 대한 재작성 규칙 생성.

관련 정보