nginx 설정 분석 클 라 이언 트 의 실제 IP 전달

1783 단어 nginx
앞 뒤 가 분 리 된 후에 nginx 를 정적 서버 로 하고 역방향 프 록 시 방식 으로 인터페이스 크로스 도 메 인 방식 을 실현 하여 개발 원 가 를 낮 추 는 동시에 많은 문제점 을 가 져 왔 습 니 다. 예 를 들 어 클 라 이언 트 의 실제 IP 획득 등 입 니 다.
일부 특수 한 장면 에서 예 를 들 어 바람 제어 와 지불 절 차 는 사용자 의 ip 정 보 를 얻어 야 한다. 그러나 nginx 역방향 대 리 는 도 메 인 을 뛰 어 넘 는 동시에 서버 의 요청 원 을 철저하게 바 꾸 고 사용자 와 서버 의 연결 을 격 리 시 켰 다. 다음 과 같다.
사용자 가 전단 페이지 에 접근 합 니 다.https://a.test.com/index/html'결제 인 터 페 이 스 를 호출 할 때 결제 인터페이스의 주 소 는'https://a.test.com/goPay'그리고 nginx 에서 server 엔 드 로 대리 되 는'https://b.test.com/goPay'。이 때 server 측 에 있어 서 그 가 받 은 요청 은 모두 nginx 서버 에서 온 것 입 니 다. 이때 server 측 에서 기본적으로 가 져 온 ip 은 nginx 서버 의 ip 입 니 다.이것 은 결코 우리 가 원 하 는 것 이 아니다.이 럴 때 다음 설정 을 추가 해 야 합 니 다:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-Port $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

세 개의 헤 더 는 각각 다음 과 같이 표시 한다.
X-Real-IP                     ip
X-Real-Port                   
X-Forwarded-For                 ip   ip  

그 중에서 도 X - Real - IP 는 필수 이 며, 후 두 항목 은 선택 하여 기입 한다.1 급 nginx 에이전트 만 존재 할 때 X - Real - IP 와 X - Forward - For 는 일치 하지만, 다단 계 에이전트 가 존재 할 때 X - Forward - For 는 다음 과 같은 형식 으로 변 한다.
X-Forwarded-For:    ip,     ip,     ip...

클 라 이언 트 ip 을 가 져 오 는 과정 에서 X - Forward - for 는 선택 한 것 이지 만 개인 적 으로 안전 문제 가 발생 했 을 때 로그 파일 에 따라 원본 을 되 돌 릴 수 있 도록 유지 하 는 것 을 권장 합 니 다.
구덩이 가 있어 ~
위 설정 을 제외 한 일부 네티즌 들 은 host 의 header 도 주 었 다.
proxy_set_header Host $host;

우선 이 header 는 필요 하지 않 습 니 다. 그 다음 에 이 header host 와 proxypass 리 트 윗 이 발생 하 는 hostheader 는 충돌 하여 인터페이스 502 의 상황 을 초래 할 수 있 습 니 다.그러나 이 설정 이 업 데 이 트 된 후에 nginx 재 부팅 은 nginx - t 를 사용 하여 테스트 를 하 는 것 을 포함 하여 오류 가 발생 하지 않 습 니 다. 이것 은 여러분 이 주의 하 셔 야 합 니 다.

좋은 웹페이지 즐겨찾기