nginx 역방향 대 리 를 사용 한 후 응용 프로그램 은 사용자 의 실제 ip 를 어떻게 가 져 옵 니까?
Ngnix 를 설정 해 야 합 니 다:
에이전트 의 모든 location 에 다음 설정 을 추가 합 니 다:
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
1.
Host
클 라 이언 트 의 실제 도 메 인 이름과 포트 번 호 를 포함 합 니 다.
2.
X-Forwarded-Proto
클 라 이언 트 의 실제 프로 토 콜 (http 또는 https) 을 표시 합 니 다.
3.
X-Real-IP
클 라 이언 트 의 실제 IP 표시 하기;
4.
X-Forwarded-For
이 Header 는 X-Real-IP
와 유사 하지만 다 중 프 록 시 에 실제 클 라 이언 트 와 중간 에 있 는 모든 프 록 시 서버 의 IP 를 포함 합 니 다.예 를 들 면:
\ # proxypass 와 fastcgipass 명령 에서 액 프 록 시 서버 를 사용 합 니 다. 기본 부하 균형 방식 은 폴 링 입 니 다.
upstream tomcat_client { server 127.0.0.1:8080; } #gzip 압축 을 켜 면 웹 페이지 를 방문 하면 자동 으로 압축 됩 니 다. #gzip on; #서버 이름과 인 자 를 지정 합 니 다. server { listen 80; server_name http://; location / { proxy_pass http://tomcat_client; proxy_redirect off; #설정 에이전트 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
위의 설정 으로 바 뀌 었 지만 사용자 의 실제 ip 을 가 져 올 수 없습니다. tomcat 를 설정 해 야 해결 할 수 있 습 니 다.
request.getHeader("X-Forwarded-For")
또는 request.getHeader("X-Real-IP") request.getRemoteAddr() ip。
Tomcat 는 응용 서버 로 서 Tomcat 의 server. xml 파일 을 설정 하여 Host 요소 에 마지막 으로 추가 할 수 있 습 니 다.<Valve className="org.apache.catalina.valves.RemoteIpValve" />
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.