Nginx 2 급 부하 설정

3044 단어 공부 하 다.Ngix
Nginx 2 급 부하 설정
선언: 업무 상 을 을 위해 프로젝트 배 치 를 하려 면 Nginx 를 사용 하여 2 급 부 하 를 설정 하고 설정 코드 를 기록 하여 참고 하도록 해 야 한다.
Nginx 설치
Nginx 홈 페이지 명령 에 따라 설치, 문서 주소, 설치 가 완료 되면 설정 파일 은 기본적으로 / etc / nginx / nginx. conf 와 / etc / nginx / conf. d / default. conf 에 있 습 니 다.
부하 구조
  • 1 급 부하, IP 주소 와 포트 는 xxx. xxx. xxx. 180: 9000
  • 2 급 부하, IP 주소 와 포트 는 xxx. xxx. xxx. 179: 9100 이 고 2 급 부하 에서 요청 을 URL 에 따라 서로 다른 주소 포트
  • 에 배포 합 니 다.
    프로필 코드
    conf. d 에서 cp default. conf sw. conf 를 실행 한 후 sw. conf 를 다음 과 같이 설정 합 니 다.
    server {
        listen       9000;
        server_name  xxx.xxx.xxx.180;
    
        #charset koi8-r;
        #access_log  /var/log/nginx/host.access.log  main;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
       
        location /sw/  {   
            root html;
            index index.html index.htm;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host:9000; #  ,server_port    ,      ,      9000,              9000,                ,    。
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_redirect http://$host/sw $scheme://$host/sw;
            #if ($query_string ~*  ^(.*)menu_id=nems(.*)$){
                proxy_pass http://xxx.xxx.xxx.179:9100;
            #}
        }
    }
    

    설정 해석:
  • 다음 두 줄 의 설정 에 주목 하 십시오.
  • proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    

    위 키 백과 에 따 르 면,
    X - Forward - for 의 형식 은 다음 과 같 아야 합 니 다.
    X-Forwarded-For: client1, proxy1, proxy2, ...
    

    한편, nginx 에 서 는 매번 X - Forward - for 의 가장 오른쪽 IP 를 X - Real - IP 의 값 으로 하고 가장 오른쪽 IP 는 실제 클 라 이언 트 IP 가 아 닌 역방향 에이전트 의 IP 임 이 분명 합 니 다.따라서 우 리 는 프로젝트 의 수요 에 따라 어떤 IP 를 사용 할 지 결정 해 야 한다. 회사 프로젝트 에서 가장 바깥쪽 에이전트 의 IP 를 사용 해 야 하기 때문에 상기 설정 을 직접 사용 할 수 있다.프 록 시 IP 가 아 닌 사용자 가 방문 한 실제 IP 를 가 져 오 려 면 ngx 를 사용 해 야 합 니 다.http_realip_module 모듈, 기본 모듈 이 시작 되 지 않 았 습 니 다. 설치 할 때 사용 해 야 합 니 다 – with - httprealip_module 는 configuration 의 매개 변수 입 니 다.
  • 다음은 Host 설정:
  • proxy_set_header Host $host:$server_port
    

    Host 가 설정 하지 않 으 면 응용 IP 와 포트 를 받 습 니 다.테스트 를 통 해 이 host 는 전달 성 이 있 는 것 으로 나 타 났 습 니 다. 프로젝트 에서 host 를 가 져 와 야 하기 때문에 이 설정 도 중요 합 니 다.만약 에 2 급 부하 에 만 Host 를 설정 하면 응용 결 과 는 xxx. xxx. xxx. 179: 9100, 즉 2 급 부하 가 있 는 서버 의 ip 과 포트 입 니 다. 그러나 1 급 부하 에 도 Host 를 설정 하면 응용 결 과 는 xxx. xxx. xxx. 180: 9100 입 니 다. 포트 는 2 급 포트 이 고 ip 은 1 급 ip 이기 때문에 설정 할 때 serverport 가 죽 으 면 문제 가 되 지 않 습 니 다.
  • X-Forwarded-Host、X-Forwarded-Server
  • proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    

    최 외층 부 하 를 확인 하 는 ip
  • X-Forwarded-Proto
  • proxy_set_header X-Forwarded-Proto $scheme;
    

    클 라 이언 트 와 1 급 부하 간 의 전송 프로 토 콜 (http 또는 https) 을 확인 하 는 데 사용 합 니 다.

    좋은 웹페이지 즐겨찾기