Nginx 부하 균형 설정 도 메 인 이름과 IP 접근 시 자바 request.getServerName()에서 다른 문제 해결 가 져 오기

9005 사이트 포트 가 있 습 니 다. Nginx 부하 균형 설정 이 있 습 니 다.설정 설명 은 다음 과 같 습 니 다.
대외 개방 포트:192.168.1.100:9005 대외 개방  도 메 인 이름 설정 www.abc.com
tomcat 배치 사이트 1:192.168.1.100:9015
tomcat 배치 사이트 2:192.168.1.100:9025
자바 코드 가 있 습 니 다:request.getServerName() 도 메 인 이름 으로 접근 하 는 사람 도 있 고 IP 로 접근 하 는 사람 도 있 으 니까.
Nginx 에 도 메 인 이름 www.abc.com 액세스 리 트 윗 만 설정 되 어 있 기 때문에 다음 과 같 습 니 다.
http {
    include       mime.types;
    default_type  application/octet-stream;
    client_max_body_size 50m;
    sendfile        on;

    upstream www.abc.com{
        #ip_hash;
        server 192.168.1.100:9015;
    server 192.168.1.100:9025;
    }
    server {
        listen       9005;
        server_name  www.abc.com;

        location / {
            proxy_pass http://www.abc.com;
        proxy_hide_header Set-Cookie;
        }
    }
}

 
하면,만약,만약... www.abc.com:9005 방문 request.getServerName() www.abc.com 받 기
도 메 인 이름 192.168.1.100:9005 로 접근 하면 request.getServerName() 받 는 것 도 www.abc.com(이것 은 내 가 원 하 는 것 이 아니 라 192.168.1.100 을 받 아야 한다)
한참 동안 코드 를 잘못 쓴 줄 알 았 는데,마지막 으로 Nginx 가 전송 할 때 도 메 인 이름 으로 주소 로 접근 하고 있 었 기 때문에 코드 는 도 메 인 이름 만 얻 을 수 있 었 다.인터넷 에서 찾 아 봤 는데 IP 접근 설정 만 추가 하면 돼 요.
해결 방법 은 nginx.conf 설정 파일 을 수정 하면 됩 니 다. 코드 는 다음 과 같 습 니 다:
http {
    include       mime.types;
    default_type  application/octet-stream;
    client_max_body_size 50m;
    sendfile        on;
#domain visit upstream www.abc.com{ #ip_hash; server
192.168.1.100:9015; server 192.168.1.100:9025; } server { listen 9005; server_name www.abc.com; location / { proxy_pass http://www.abc.com; proxy_hide_header Set-Cookie; } } #ip visit upstream 192.168.1.100{ #ip_hash; server 192.168.1.100:9015; server 192.168.1.100:9025; } server { listen 9005; server_name 192.168.1.100; location / { proxy_pass http://192.168.1.100; proxy_hide_header Set-Cookie; } } }

,다시 Nginx,다시 방문 하여 테스트 를 진행 하면 됩 니 다.

좋은 웹페이지 즐겨찾기