tencent cloud

Cloud Load Balancer

릴리스 정보 및 공지 사항
릴리스 노트
제품 공지
제품 소개
제품 개요
제품 장점
시나리오
기술 원리
Product Comparison
사용 제한
Service Regions and Service Providers
구매 가이드
과금 개요
비용 계산 항목
구매 방식
연체 안내
제품 속성 선택
시작하기
도메인 이름 기반 CLB 시작하기
CLB 시작하기
CentOS에서 Nginx 배포하기
CentOS에서 Java Web 배포하기
운영 가이드
CLB 인스턴스
CLB 리스너
리얼 서버
상태 확인
인증서 관리
로그 관리
모니터링 및 알람
액세스 관리
사례 튜토리얼
CLB에 인증서 배치(양방향 인증)
HTTPS 포워딩 구성
리얼 클라이언트 IP 가져오기
로드 밸런싱 구성 모니터링 및 알람에 대한 모범 사례
다중 가용존에서 HA 구현
로드 밸런싱 알고리즘 선택 및 가중치 구성 예시
CLB 수신 도메인 이름에 대한 WAF 보호 구성하기
OPS 가이드
과도한 TIME_WAIT 상태의 클라이언트에 대한 솔루션
CLB HTTPS 서비스 성능 테스트
스트레스 테스트 FAQ
CLB 인증서 작업 권한
문제 해결
UDP 상태 확인 예외 발생
API 참조
History
Introduction
API Category
Instance APIs
Listener APIs
Backend Service APIs
Target Group APIs
Redirection APIs
Other APIs
Classic CLB APIs
Load Balancing APIs
Making API Requests
Data Types
Error Codes
CLB API 2017
FAQ
과금 관련
CLB 구성
헬스체크 이상 점검
HTTPS
WS/WSS 프로토콜 지원
HTTP/2 프로토콜 지원
연락처
용어집
문서Cloud Load Balancer사례 튜토리얼리얼 클라이언트 IP 가져오기IPv4 CLB를 통해 리얼 클라이언트 IP 가져오기

IPv4 CLB를 통해 리얼 클라이언트 IP 가져오기

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2024-01-04 20:11:24

CLB(Cloud Load Balancer)에서 클라이언트 리얼 IP 가져오기 관련 참고 사항

모든 레이어 4(TCP/UDP/TCP SSL) 및 레이어 7(HTTP/HTTPS) CLB 서비스는 추가 구성 없이 백엔드 CVM 인스턴스에서 직접 실제 클라이언트 IP 가져오기를 지원합니다.
레이어 4 CLB의 경우 백엔드 CVM 인스턴스에서 얻은 원본 IP는 클라이언트 IP입니다.
레이어 7 CLB의 경우 X-Forwarded-For 또는 remote_addr 필드를 사용하여 클라이언트 IP를 직접 가져올 수 있습니다. 레이어 7 CLB의 액세스 로그는 Configuring Access Logs를 참고하십시오.
설명:
레이어 4 CLB의 경우 백엔드 CVM 인스턴스에서 추가 구성 없이 클라이언트 IP를 직접 가져올 수 있습니다.
SNAT가 활성화된 다른 레이어 7 로드 밸런싱 서비스의 경우 백엔드 CVM 인스턴스를 구성한 다음 X-Forwarded-For를 사용하여 실제 클라이언트 IP를 가져와야 합니다.
다음은 일반적으로 사용되는 애플리케이션 서버 구성 스키마입니다.

IIS 6 구성 스키마

1. F5XForwardedFor 플러그인 모듈을 다운로드하여 설치하고 서버 운영 체제 버전에 따라 x86\\Release 또는 x64\\Release 디렉터리의 F5XForwardedFor.dll을 특정 디렉터리(예시: 본문의 C:\\ISAPIFilters)에 복사하고 IIS 프로세스에 이 디렉터리에 대한 읽기 권한이 있는지 확인합니다.
2. IIS 관리자를 열고 현재 열려 있는 웹 사이트를 찾은 다음 웹 사이트를 우클릭하고 속성을 선택하여 속성 페이지를 엽니다.
3. 속성 페이지에서 ISAPI 필터로 전환하고 추가를 클릭하면 필터 속성 추가/편집 창이 팝업됩니다.
4. 필터 속성 추가/편집 창에서 ‘필터 이름’에 ‘F5XForwardedFor’를 입력하고 ‘실행 파일’에 F5XForwardedFor.dll의 전체 경로를 입력한 다음 확인을 클릭합니다.
5. 구성을 적용하려면 IIS 서버를 다시 시작합니다.

IIS 7 구성 스키마

1. F5XForwardedFor 플러그인 모듈을 다운로드하여 설치하고 서버 운영 체제 버전에 따라 x86\\Release 또는 x64\\Release 디렉터리의 F5XFFHttpModule.dllF5XFFHttpModule.ini를 특정 디렉터리(예시: 본문의 C:\\x_forwarded_for)에 복사하고 IIS 프로세스에 이 디렉터리에 대한 읽기 권한이 있는지 확인합니다.
2. IIS 서버를 선택하고 모듈을 더블클릭합니다.


3. 네이티브 모듈 구성을 클릭합니다.


4. 팝업 창에서 등록을 클릭합니다.


5. 다운로드한 DLL 파일을 아래와 같이 추가합니다.


6. 파일을 추가한 후 파일을 선택하고 확인을 클릭합니다.


7. ‘ISAPI 및 CGI 제한’에 위의 두 DLL 파일을 추가하고 제한을 허용으로 설정합니다.


8. 구성을 적용하려면 IIS 서버를 다시 시작하십시오.

Apache 구성 스키마

1. 타사 Apache 모듈 ‘mod_rpaf’를 설치합니다.
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
2. 파일 끝에 다음을 추가하여 Apache 구성 /etc/httpd/conf/httpd.conf를 수정합니다.
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips IP 주소(CLB에서 제공하는 공중망 IP가 아니며, 특정 IP에 대해서는 Apache 로그를 조회하고, 일반적으로 두 개의 IP 주소가 있으며 둘 다 입력해야 함)
RPAFheader X-Forwarded-For
3. 위의 내용을 추가한 후 Apache를 다시 시작합니다.
/usr/sbin/apachectl restart

Nginx 구성 스키마

1. Nginx를 서버로 사용할 때 http_realip_module을 사용하여 실제 클라이언트 IP를 가져올 수 있습니다. 그러나 이 모듈은 기본적으로 Nginx에 설치되어 있지 않으며 --with-http_realip_module을 추가하려면 Nginx를 다시 컴파일해야 합니다.
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
wget http://nginx.org/download/nginx-1.17.0.tar.gz
tar zxvf nginx-1.17.0.tar.gz
cd nginx-1.17.0
./configure --prefix=/path/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_realip_module
make
make install
2. nginx.conf 파일을 수정합니다.
vi /etc/nginx/nginx.conf
빨간색으로 표시된 구성 필드 및 정보를 다음과 같이 수정합니다.
설명:
여기서 xx.xx.xx.xx를 리얼 IP 주소(CLB에서 제공하는 공중망 IP가 아님)로 변경해야 합니다. 특정 IP 주소에 대해 이전 Nginx 로그를 쿼리합니다. IP 주소가 여러 개인 경우 모든 IP 주소를 입력해야 합니다.
fastcgi connect_timeout 300;
fastcgi send_timeout 300;
fastcgi read_timeout 300;
fastcgi buffer_size 64k;
fastcgi buffers 4 64k;
fastcgi busy_buffers_size 128k;
fastcgi temp_file_write_size 128k;

set_real_ip_from xx.xx.xx.xx;
real_ip_header X-Forwarded-For;
3. Nginx를 다시 시작합니다.
service nginx restart
4. 실제 클라이언트 IP를 가져오려면 Nginx 액세스 로그를 조회합니다.
cat /path/server/nginx/logs/access.log


도움말 및 지원

문제 해결에 도움이 되었나요?

피드백