[서블릿/JSP] Client IP를 알기 위해 request.getRemoteAddr() 사용시 127.0.0.1만 리턴되는 문제 (with Proxy Server)
Proxy 환경에서 request.getRemoteAddr() 사용시 127.0.0.1만 리턴되는 문제nginx 프록시 웹서버와 Tomcat을 연동하여 사용중인 환경에서 request.getRemoteAddr() 사용시 모든 클라이언트의 IP가 127.0.0.1로 리턴되는 문제가 있었습니다.엄밀히 따지자면 최초에는 "엇 왜 다 127.0.0.1이 나오지?" 라고 생각하다가 이번에 버전을 업그레이드 시킨 톰캣문제인가 싶어서 Servlet API를 보니 마지막에 클라이언트 또는 마지막 프록시가 보낸 요청의 IP를 리턴한다는 사실을 알게되었습니다. 이때 "아차 nginX가 있구나." 라고 생각했죠.해결 방법구글링을 프록시를 사용하는 경우에는 getRemoteAddr()를 사용하지 않고 다음의 몇 가지 헤더값으..
시스템 인프라
2018. 6. 22. 09:30
[Docker] 도커 네트워크 구조 및 컨테이너 호스트 OS 외부에 개방하는 방법
호스트 입장에서의 컨테이너호스트에 도커를 설치하고 컨테이너를 생성하는 경우 네트워크 구조는 대략 위와 같이 docker0 인터페이스가 생성됩니다.docker0 인터페이스는 가상 인터페이스이며, 172.17.~/8의 IP를 할당받게 됩니다. 또한 docker0 인터페이스는 bridge 네트워크로 컨테이너가 하나씩 생성될 때마다 바인딩 되는 형식이므로 컨테이너가 통신할 때에는 무조건 docker0 인터페이스를 거치게 됩니다. 브릿지에 대한 정보는 brctl show 명령어로 확인 가능합니다.컨테이너의 네트워크 대역컨테이너는 NAT를 통해 IP주소를 할당받는다. 기본적으로 설정이 따로 없다면 컨테이너에는 172.17.0.x/8의 IP를 순차적으로 할당합니다. 이를 확인하기 위해 우분투 컨테이너를 하나 띄웁니다..