nginx 역방향 프록시를 통해 Tomcat은 서버 IP 대신 실제 클라이언트 IP를 얻습니다. nginx tomcat 느린 nginx 프록시 tomcat nginx tomcat 40

WBOY
풀어 주다: 2016-07-29 08:49:45
원래의
1249명이 탐색했습니다.

nginx 역방향 프록시를 통해서는 실제 IP를 얻을 수 없습니다. 실제 IP를 얻으려면 Nginx 구성 파일을 구성해야 합니다: nginx.conf

proxy_set_header X-Real - IP $remote_addr;

예:

########################################################################
#要转发地域名:
upstream t.csdn.com {

        server 192.168.1.188:8080 max_fails=0 weight=1; #8080为tomcat端口

    }

##################################################################
        server {
        listen 80;
        server_name t.csdn.com;
        access_log /data/wwwlogs/access_tomcat.log combined;
        root /usr/local/tomcat/webapps;
        index index.html index.jsp;

        #反向代理配置,将所有请求为http://hostname的请求全部转发到upstream中定义的目标服务器中。
        location / {

            #此处配置的域名必须与upstream的域名一致,才能转发。

            proxy_pass     http://t.csdn.com;

            proxy_set_header   X-Real-IP $remote_addr;

            }   

         #启用nginx status 监听页面

        location /nginxstatus {

            stub_status on;

            access_log on;

        }


        }
로그인 후 복사

Tomcat 획득 방법: java

private static String getRemoteAddrIp(HttpServletRequest request) {
		String ipFromNginx = getHeader(request, "X-Real-IP");
		log.info("ipFromNginx:" + ipFromNginx);
		log.info("getRemoteAddr:" + request.getRemoteAddr());
		return StringUtils.isEmpty(ipFromNginx) ? request.getRemoteAddr()
				: ipFromNginx;
	}

	private static String getHeader(HttpServletRequest request, String headName) {
		String value = request.getHeader(headName);
		return (StringUtils.isNotBlank(value) && !"unknown"
				.equalsIgnoreCase(value)) ? value : "";
	}

로그인 후 복사
마지막으로 getRemoteAddrIp 메서드를 호출하여 가져옵니다. IP :

String clientIp = getRemoteAddrIp(request);

log.info("客户IP:" + clientIp);
로그인 후 복사


위 내용은 Tomcat과 nginx 콘텐츠를 포함하여 Tomcat이 nginx 역방향 프록시를 통해 서버 IP 대신 실제 클라이언트 IP를 얻는 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿