아 리 클 라 우 드 slb 7 층 에이전트 ingress 가 실제 클 라 이언 트 ip 를 가 져 오 는 방법

원인: ingress 가 ip 화이트 리스트 를 설정 한 후에 화이트 리스트 에 있 는 ip 403 이 거부 한 것 을 발 견 했 습 니 다. 나중에 ingress 의 로 그 를 추적 한 결과 실제 ip 은 slb 의 보존 ip 즉 상부 대리 ip 입 니 다.이렇게 하면 실제 사용자 의 IP 를 가 져 올 수 없습니다.
nginx 의 해결 방안:
X - Forward - for 방식 으로 클 라 이언 트 의 실제 IP 주 소 를 가 져 옵 니 다.
추가 할 설정 필드 와 정 보 는 다음 과 같 습 니 다.
set_real_ip_from IP_address
real_ip_header X-Forwarded-For;
ingress - nginx 의 설정 방법 은 다음 과 같 습 니 다.
kubectl edit cm nginx-configuration -n kube-system

새로 추가:
http-snippet: |
set_real_ip_from 100.121.0.0/16;
real_ip_header X-Forwarded-For;

100.121.0.0 은 slb 의 보존 주소 입 니 다. 각각 slb 의 보존 주 소 는 다 릅 니 다. 자신의 slb 보존 주 소 를 설정 하면 됩 니 다.7 층 부하 균형 사용 기본 상황 에서 realip 에서 가 져 온 것 은 slb 의 보존 주소 입 니 다. 다음 로그 와 같 습 니 다:
{ "real_ip" : "100.121.134.220" ,"time": "2019-04-02T16:41:43+08:00", "remote_addr": "", "x-forward-for": "183.129.243.163, 100.121.134.220", "request_id": "3d55a0d610116e249d6fda1b4746d9b0", "remote_user": "-", "bytes_sent": 785, "request_time": 0.065, "status": 200, "vhost": "presboss.qjdchina.com", "request_proto": "HTTP/1.1", "path": "/clms/boss/accountbank/list", "request_query": "parentId=0", "request_length": 755, "duration": 0.065, "method": "GET", "http_referrer": "https://presboss.qjdchina.com/clms/boss/customerFlow/detail?taskId=1870002&processId=1867328", "http_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" }
  • set_real_ip_from: 실제 서버 의 이전 프 록 시 IP 주소 나 IP 세그먼트, 여러 줄 을 쓸 수 있 습 니 다
  • real_ip_header: 어느 header 헤드 에서 필요 한 IP 주 소 를 검색 합 니까?
  • real_ip_recursive: IP 주 소 를 재 귀적 으로 제거 하고 ip 문자열 은 오른쪽 에서 왼쪽으로 set 를 제거 합 니 다.real_ip_from 에 나타 난 IP 는 이 ip 세그먼트 가 나타 나 지 않 은 IP 가 나타 나 면 이 IP 는 사용자 의 IP 로 여 겨 집 니 다.
  • realip_recursive on 의 경우
  • 61.22.22, 121.207.33.33, 192.168.50.121 모두 set 에 나 타 났 다.real_ip_from 에서 120.22.11.11 만 나타 나 지 않 았 다 면 그 는 사용자 의 ip 주소 로 여 겨 지고 reote 에 할당 되 었 다.addr 변수
  • realip_recursive off 또는 설정 하지 않 은 경우
  • 192.168.50.121 setreal_ip_from 에서 제외 하면 다음 ip 주 소 는 사용자 의 ip 주소
  • 라 고 생각 합 니 다.
  • 예 를 들 어 내 위의 예:
  • 183.129.243.163, 100.121.134.220 100.121.0.0 / 16 네트워크 의 ip 을 제외 한 나머지 183.129.243.163 은 클 라 이언 트 의 ip
  • 이다.


    ​​​​​​​​​​​​​​
    ​​​​​​​

    좋은 웹페이지 즐겨찾기