Linux

아파치 , Nginx 에서 remote ip 가 엉뚱하게 나올때

스마트큐브 2019. 3. 26. 19:08


처음 이걸 알게 된건 Ngixn  proxy 설정을 하면서 겪었던 문제였다. 

기존 해왔던 modjk 연결 방식 되신 간편한 proxy 로 tomcat 을 연결하였더니 

엉뚱하게 access log 에 127.0.0.1 로 기록이 남았었다. 


문제의 원인은 XFF(X-Forwarded-For) 


아파치, nginx , tomcat 에서 설정하는 방법은 아래 링크에 친절이 설명하고 있다. 


1.참고 링크

2.참고 링크 


혹시 링크가 끊어짐을 대비하여 요약하자면 


아파치 

:http.conf 파일 내용중 포맷을 정의하는곳으로 가서 

 LogFormat "%h ..... 중략   

로 되어있는 부분을 

LogFormat "%{X-Forwarded-For}i .......중략

위와 같이 변경한다.    %h 부분이 프록시 서버 ip 가 찍히는 부분이고 위와 같이 설정하면 실제 클라이언트 ip 가 찍히게 된다. 


Nginx

: nginx.conf 내용에서

http {

set_real_ip_from   127.0.0.1;

real_ip_header X-Forwarded-For;


location / {     

         proxy_pass http://{연동 하려는 서버 통상 톰캣의 end point} 

         proxy_set_header X-Forwarded-For $remote_addr;    

         proxy_set_header X-Forwarded-Proto $scheme;     

         proxy_set_header Host $http_host; 

}