클라우드에서 웹 애플리케이션을 설정하는 것은 항상 재미있고 흥미진진합니다.
최근에 저는 Cloudflare 뒤에 있는 AWS에서 호스팅되는 koreantech.org 도구 도구를 출시했습니다.
AWS 애플리케이션 로드 밸런서와 Nginx를 웹 서버로 사용하고 있습니다. 생명을 만든 후 access.log를 확인해보니 모든 요청이 내부(로드 밸런서) IP에서 온 것으로 표시되어 있었습니다.
방문자 위치에 대한 웹 서버 로그를 분석하려는 경우에는 좋지 않습니다. 내가 누락되었거나 클라이언트 IP를 복원하기 위해 몇 가지 구성 변경을 수행해야 한다는 것을 깨달았습니다.
저와 같은 상황이신가요?
Nginx 액세스 로그에서 클라이언트 IP를 얻는 방법은 다음과 같습니다.
AWS 또는 Google Cloud LB에서 방문자 IP 가져오기
- Nginx 웹 서버에 로그인
- 설치된 경로로 이동합니다(기본 위치는 /etc/nginx).
- nginx.conf 파일을 백업하십시오.
- HTTP 블록 아래에 다음을 추가하십시오.
real_ip_header X-Forwarded-For; set_real_ip_from 0.0.0.0/0;
- Nginx를 다시 시작하면 access.log 파일에 방문자의 IP가 표시됩니다.
Cloudflare 뒤에 있는 경우 클라이언트의 IP 대신 Cloudflare의 IP가 표시되므로 아래 작업도 수행해야 합니다.
Cloudflare에서 클라이언트 IP 가져오기
Cloudflare는 훌륭한 CDN 및 보안 제공업체이며 저는 Cloudflare를 정말 좋아합니다. 저처럼 Cloudflare를 사용 중이고 웹 서버 로그에서 방문자 IP를 복원하고 싶다면 다음과 같이 할 수 있습니다.
Nginx 서버에 로그인했다고 가정합니다.
사이트 구성 파일을 백업하십시오(일반적으로 여기 – /etc/nginx/sites-available/yourdomain).
파일 시작 부분에 다음을 추가하십시오.
set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; set_real_ip_from 104.16.0.0/13; set_real_ip_from 104.24.0.0/14; set_real_ip_from 108.162.192.0/18; set_real_ip_from 131.0.72.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 162.158.0.0/15; set_real_ip_from 172.64.0.0/13; set_real_ip_from 173.245.48.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 190.93.240.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 199.27.128.0/21; set_real_ip_from 2400:cb00::/32; set_real_ip_from 2606:4700::/32; set_real_ip_from 2803:f800::/32; set_real_ip_from 2405:b500::/32; set_real_ip_from 2405:8100::/32; set_real_ip_from 2c0f:f248::/32; set_real_ip_from 2a06:98c0::/29; real_ip_header CF-Connecting-IP;
참고: IP 목록의 유효성을 검사할 수 있습니다. 공식 페이지.
Nginx를 다시 시작하면 이제 클라이언트 IP가 표시됩니다. 이것은 저에게 도움이 되었으며 여러분도 그러기를 바랍니다.
다음으로 Cloudflare Workers를 사용하여 보안 헤더를 구현하는 방법을 알아보세요.
기사를 재미있게 읽으셨나요? 세계와 공유하는 것은 어떻습니까?