본문 바로가기
Linux

NHN Cloud LoadBalancer 리스너 방식에 따른 Apache Log 설정 (NAVER Cloud, AWS ELB 참조)

by 세계정보ㄱ 2022. 5. 31.
728x90
반응형

NHN Cloud LoadBalancer 리스너 방식의 프로토콜은 HTTP, HTTPS, TERMINATED_HTTPS, TCP 총 4가지

(기본적으로 프록시 모드로 동작)

 

1. HTTP/TERMINATED_HTTPS 프로토콜 - > X-Forwarded-For 헤더 정보 참고 (자동적으로 프록시 프로토콜 선택)

 

 

Apache Log 설정 전 mod_remoteip 활성화 확인

# apachectl -M|grep remoteip
remoteip_module (shared)

 

확인 후 httpd.conf에 RemoteIPHeader X-Forwarded-For 추가

 

Log 형식을 2개중 선택하여 변경- 입맛에 맞게

LogFormat “%a %l %u %t \”%r\” %>s %O \”%{Referer}i\” \”%{User-Agent}i\”” combined

LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

 

2. TCP/HTTPS -> ProxyProtocal 사용 (생성시 프록시 프로토콜 사용에 체크를 해야 한다)

Apache Log 설정 전 mod_myfixip 모듈 설치 후 mod_myfixip, mod_remoteip 활성화

 

mod_myfixip 설치

$ wget — no-check-certificate https://raw.githubusercontent.com/ggrandes/apache24-modules/master/mod_myfixip.c
$ /{아파치가설치된경로}/bin/apxs -c -i mod_myfixip.c

 

httpd.conf에 mod_myfixip 추가

 

<IfModule mod_myfixip.c>

RewriteIPResetHeader off

RewriteIPAllow x.x.x.x/24
</IfModule>
<IfModule mod_remoteip.c>

RemoteIPHeader X-Cluster-Client-Ip

RemoteIPInternalProxy x.x.x.x./24

</IfModule>

 

 Log 형식을 변경

LogFormat “%{X-Cluster-Client-Ip}i %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined

 

* httpd.conf 에 RemoteIPProxyProtocol On 추가 후 Log 설정 변경해도 되지만

일반적인 방법으로 개별 인스턴스로 URL 접근이 안됨

 

HTTP 프로토콜 설정은 아래 참조

 

[참조]

 

NHN Cloud 사용자 가이드

https://docs.toast.com/ko/Network/Load%20Balancer/ko/overview/

 

개요 - NHN Cloud 사용자 가이드

Network > Load Balancer > 개요 NHN Cloud는 로드 밸런서를 제공합니다. 로드 밸런서를 이용하면, 인스턴스 하나로 처리하기 힘든 부하를 여러 대의 인스턴스로 분산하여 처리량을 늘릴 수 있습니다. 장

docs.toast.com

NAVER Cloud Platform

https://medium.com/naver-cloud-platform/l4-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C%EC%9D%98-acl-%EC%84%A4%EC%A0%95-tcp-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-%EC%82%AC%EC%9A%A9-%EC%8B%9C-616f1e307ff7

 

L4 환경에서의 ACL 설정 — TCP 프로토콜 사용 시

로드밸런서에서 TCP/SSL 프로토콜 사용 시, Proxy Protocol을 사용하여 Client IP를 추출하고 특정 IP만 접근을 허용하는 법에 대해서 소개해드리고자 합니다.

medium.com

 

https://navercloudplatform.medium.com/l4-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C%EC%9D%98-acl-%EC%84%A4%EC%A0%95-http-https-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-%EC%82%AC%EC%9A%A9-%EC%8B%9C-c3ff74c42dfb

 

L4 환경에서의 ACL 설정 — HTTP/HTTPS 프로토콜 사용 시

로드밸런서에 바인딩 된 웹서버에서 Client IP를 추출하고, 특정 Client IP의 웹페이지 접속을 차단하는 설정에 대해서 간단하게 소개해드리고자 합니다.

navercloudplatform.medium.com

AWS 웹 서버 로그에서 클라이언트 IP 주소를 캡처하려면 어떻게 해야 합니까?

https://aws.amazon.com/ko/premiumsupport/knowledge-center/elb-capture-client-ip-addresses/

 

ELB를 기반으로 하는 웹 서버 로그에서 클라이언트 IP 주소 캡처

웹 서버에 Elastic Load Balancing(ELB)을 사용 중이며 웹 서버 액세스 로그에서 로드 밸런서의 IP 주소를 볼 수 있습니다. 이 IP 주소 대신 클라이언트 IP 주소를 캡처하려면 어떻게 해야 합니까?

aws.amazon.com

 

728x90
반응형