Middleware (Nginx-5) Nginx 사용하는 옵션정리 5_X-Forwarded-For
페이지 정보
작성자 미들웨어 아이디로 검색 전체게시물 댓글 0건 조회 11,113회 좋아요 2회 작성일 20-06-21 09:48본문
이번에는 Nginx 에서 많이 사용되고 있는 기능중 한개를 설명해드리겠습니다.
진행 순서는 1~8까지 가이드를 준비하고 있습니다.
- Nginx 설치 및 컴파일 방법_(모듈설치)
- Nginx 사용하는 옵션정리_proxy_pass
- Nginx 사용하는 옵션정리_upstream
- Nginx 사용하는 옵션정리_health-check
- Nginx 사용하는 옵션정리_sticky
- Nginx 사용하는 옵션정리_upstream, ip hash
- Nginx 사용하는 옵션정리_X-Forwarded-For
- Nginx 사용하는 옵션정리_php-fpm & zabbix 모니터링
apache를 많이 사용하다 요즘엔 Nginx 위주로 사용하고 있습니다.
nginx 와 wildfly 연동을 할때 nginx proxy_pass 을 사용하게 되면 기본적으로 client IP를 얻어오지 못하고 webserver ip나 L4 ip를 access log로 받아옵니다.
client ip을 얻어오고 싶을때는 wildfly (jboss)에서 아래 설정을 추가해주셔야 합니다.
1. x-forwarded-for 란?
XFF 는 HTTP Header 중 하나로 HTTP Server 에 요청한 clinet 의 IP 를 식별하기 위한 사실상의 표준이다.
이로 인해 처리한 웹 서버나 WAS에서 request.getRemoteAddr(); 등으로 클라이언트 IP를 얻을 경우 L4 나 Proxy 의 IP 를 얻게 되는데 이는 원하는 결과가 아니다.
(링크.. 여기서 참고했습니다.) https://www.lesstif.com/pages/viewpage.action?pageId=20775886 |
2. x-forwarded-for 테스트
파일 : standalone.conf
<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> <connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/> <virtual-server name="default-host" enable-welcome-root="false"> <alias name="localhost"/> <alias name="example.com"/> </virtual-server>
<valve name="RemoteIPValve" module="org.jboss.as.web" class-name="org.apache.catalina.valves.RemoteIpValve"> <param param-name="remoteIpHeader" param-value="x-forwarded-for"/> <param param-name="protocolHeader" param-value="x-forwarded-proto"/> <param param-name="protocolHeaderHttpsValue" param-value="https"/> <param param-name="internalProxies" param-value="192.*|172.*"/> </valve>
</subsystem> |
위에 붉은 색 부분을 추가해주면 됩니다.
추가로 위 옵션 중 192.* 172.* IP 대역에 대해서 client IP가 안나오는 경우 아래 옵션을 추가해주면 됩니다.
<param param-name="internalProxies" param-value="192.*|172.*"/>
댓글목록
등록된 댓글이 없습니다.