반응형
개요
nginx의 proxy 기능을 사용하여 tomcat 연동
구성환경
CentOS 7.6 / nginx-1.17.7 / tomcat 9
톰캣에 기본 내장된 examples 어플리케이션과 연동하는 예제
단계 1) nginx 구성
1. nginx.conf
sserver { location /examples { => context root proxy_pass http://localhost:8080; => tomcat http 주소 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # proxy_set_header X-Real-IP $remote_addr; proxy_set_header HOST $http_host; proxy_set_header X-NginX-Proxy true; } } |
* X-Forwarded-For : http 헤더에 X-Forwarded-For 라는 Custom 헤더 추가, 이 헤더에 클라이언트 IP( $proxy_add_x_forwarded_for)값을 삽입해서 tomcat에 포워딩
* X-Real-IP : X-Forwarded-For 와 동일
* HOST : HTTP의 host 헤더 정보를 톰캣으로 포워딩시 클라이언트에서 요청한 host 헤더값으로 포워딩
* X-NginX-Proxy : 옵션, 생략 가능
단계 2) tomcat server.xml 수정
- tomcat에서는 실제 작업을 하지 않아도 연동은 된다. 다만, 클라이언트 접속 로그 기록이 기본 적으로 nginx의 호스트 ip가 기록이 됨으로 실제 접속 클라이언트 IP가 기록되도록 이부분을 변경을 해 주도록 하자.
%h 를 %{x-forwarded-for}i 변경, x-forwarded-for로 넘겨진 인자를 access_log 파일에 기록
변경전
<Valve className=org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> |
변경후
<Valve className=org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%{x-forwarded-for}i %l %u %t "%r" %s %b" /> |
** X-Real-IP 헤더를 사용한다면 %{x-real-ip}i 를 사용하면 된다.
반응형
'WEB & WAS > Tomcat' 카테고리의 다른 글
nginx + tomcat 클러스터링 구성 (0) | 2020.01.19 |
---|---|
[Tomcat] Context간 세션 공유 (0) | 2019.09.29 |
[Tomcat] Clustering(클러스터링) (0) | 2019.08.27 |
[Tomcat] WAR 파일 배포 (0) | 2019.08.25 |
[Tomcat] Context 추가 (0) | 2019.08.23 |