"HTTP_X_FORWARDED_FOR" 헤더를 캡처하도록 IIS7 로깅을 가장 잘 구성하는 방법

"HTTP_X_FORWARDED_FOR" 헤더를 캡처하도록 IIS7 로깅을 가장 잘 구성하는 방법

nginx 역방향 프록시 뒤에 IIS7 서버가 있습니다.

역방향 프록시는 방문자 IP 주소와 함께 표준 "HTTP_X_FORWARDED_FOR" 헤더를 보내지만 IIS7 로깅은 nginx 서버의 IP 주소만 기록합니다(이건 말이 되지만 내가 원하는 것은 아닙니다).

대신에 "HTTP_X_FORWARDED_FOR" 헤더를 기록하도록(또는 추가로 기록하도록) IIS7에 지시하려면 어떻게 해야 합니까?

(참고: 저는 Windows 관리자가 아닌 Linux 관리자이므로 명시적인 지침과 링크를 진심으로 감사드립니다.)

답변1

이는 IIS에 내장되어 있지 않지만 이 기능을 수행하는 모듈을 설치할 수 있습니다. ARR 도우미라고 하지만 IIS 앞의 모든 프록시에서 작동합니다.

http://blogs.iis.net/anilr/archive/2009/03/03/client-ip-not-logged-on-content-server-when-using-arr.aspx

답변2

이제 사용자 정의 헤더를 기록할 수 있는 IIS7 모듈이 있습니다.

어떻게: http://learn.iis.net/page.aspx/579/advanced-logging-for-iis-70---사용자 정의-로깅/

답변3

질문에 iis-7 태그가 지정되어 있지만 X-Forwarded-For 및 IIS에서 검색할 때 가장 많이 검색되는 항목이므로 IIS 8.5에 대해 이 정보를 제공해야겠다고 생각했습니다.

IIS 8.5 이상

IIS 8.5에서는 다음을 도입했습니다.향상된 로깅관리자가 X-Forwarded-For와 같은 HTTP 요청 헤더를 쉽게 기록할 수 있는 기능입니다. 이 답변은 링크된 페이지에서 수정되었습니다.

  1. 열려 있는IIS 관리자.

  2. 다음에서 사이트나 서버를 선택하세요.사이창을 클릭한 다음 두 번 클릭합니다.벌채 반출. 향상된 로깅은 사이트 수준 로깅에만 사용할 수 있습니다.사이창을 선택한 다음사용자 정의 필드섹션W3C 로깅 필드대화 상자가 비활성화되었습니다.

  3. 에서체재아래 필드로그 파일, 선택하다W3C그런 다음 클릭하세요.필드 선택....

  4. 에서W3C 로깅 필드대화 상자, 클릭필드 추가.... 향상된 로깅은 사이트 수준 로깅에만 사용할 수 있습니다.사이창, 그럼필드 추가...비활성화되었습니다.

  5. 에서사용자 정의 필드 추가대화 상자에 다음을 입력하세요.분야 명예를 들어 c-ip-original로그 파일 내에서 사용자 정의 필드를 식별합니다. 필드 이름에는 공백이 포함될 수 없습니다.

  6. 선택하다요청 헤더에서소스 유형목록.

  7. 입력 X-FORWARDED-FOR하다원천.

  8. 딸깍 하는 소리좋아요.

  9. 딸깍 하는 소리좋아요.

  10. 딸깍 하는 소리적용하다에서행위창에서 새 구성을 적용합니다.

사용자 정의 필드가 구성되면 IIS는 파일에 사용자 정의 필드가 포함되어 있음을 나타내기 위해 파일 이름에 "_x"가 추가된 새 텍스트 로그 파일을 생성합니다.

모든 사용자 정의 필드에서 수집된 데이터의 총 크기는 65,536바이트를 초과할 수 없습니다. 총계가 65,536바이트를 초과하면 IIS는 데이터를 자릅니다.

관련 정보