본문 바로가기
기타개발관련

[Apache] remoteip 모듈을 통해 ALB 환경에서 클라이언트 IP 추출

by 와오우 2026. 3. 12.
반응형

 

1. 로드밸런서 환경 (ALB, CLB 등) 에서 프록시 서버 IP가 나타나는 이슈

- 아파치 앞단에 L4나 Proxy 등이 있는 경우 실제 클러이언트 IP 대신 프록시 서버의 IP가 찍히게 된다.

- 이를 해결하기 위해 아파치 모듈 중 하나인 mod_remoteip 모듈을 활성화 하여 해결.

 

2. 아파치 버전

- 아파치 버전 2.4.x 즉, 2.4 버전 이후로는 기본으로 들어있기 때문에 모듈 활성화만 해주면 된다.

 

3. 설정 파일 수정

- 아파치 설정파일 (httpd.conf) 내에 모듈 활성화 및 remoteip 관련 파일을 하나 만들어준다.

- httpd.conf 

1) 모듈 활성화

LoadModule remoteip_module modules/mod_remoteip.so

 

2) 파일 추가

Include conf/extra/httpd-remoteip.conf

 

3) httpd-remoteip.conf 내용 (로드밸런서 IP를 적어준다.)

<IfModule mod_remoteip.c>
        RemoteIPHeader X-Forwarded-For

        RemoteIPTrustedProxy 10.0.x.x/24
        RemoteIPTrustedProxy 10.0.x.x/24
</IfModule>

 

헤더는 보통 X-Forwarded-For 으로 하며

RemoteIPTrustedProxy 에 신뢰할 수 있는 로드밸런서 IP를 작성해준다.

 

 

*로그를 통한 확인 시 모듈만 켠다고 해서 로그에 자동으로 찍히지는 않음.

로그 포맷(LogFormat)에서 클라이언트 IP를 나타내는 %h를 **%a**로 변경해야 합니다.

LogFormat "%h %l %u %t \"%r\" %>s %b" combined
LogFormat "%a %l %u %t \"%r\" %>s %b" combined

 

4. 확인

- 먼저 모듈이 정상적으로 활성화가 되었는지 확인한다.

apachectl -M | grep remoteip

: 정상적인 결과  remoteip_module (shared)

 

5. 아파치 재구동

1) 설정파일 문법오류 확인.

./apachectl -t

정상 결과 : Syntax OK

 

2) 아파치 재구동

./apachectl -k graceful

- 실제 운영중이라면 graceful을 통해 중지하지 않고 설정된 내용을 적용하는 방법을 사용한다.

반응형

'기타개발관련' 카테고리의 다른 글

Nginx 설치 테스트 (version 1.15.1)  (0) 2023.03.31

댓글