Nginx 역방향 에이전트 및 부하 균형 설정 실현

4128 단어
수요
nginx 는 부하 균형 서버 로 서 사용자 가 먼저 nginx 에 도착 한 다음 에 nginx 가 부하 설정 에 따라 tomcat 서버 에 요청 을 배포 합 니 다.
  • tomcat 서버 1: 192.168.127130: 8080
  • tomcat 서버 2: 192.168.127130: 8081
  • tomcat 서버 3: 192.168.127130: 8082
  • nginx 프 록 시 서버: 192.168.127.130
  • 역방향 대리 란 무엇 입 니까?
    역방향 프 록 시 는 외부 네트워크 가 내부 네트워크 서버 에 대한 악성 공격, 캐 시 를 방지 하여 서버 의 압력 과 접근 안전 통 제 를 줄 이 는 동시에 부하 균형 을 이 루어 사용자 요청 을 여러 서버 에 배분 할 수 있다.
    부하 균형
    부하 균형 은 자원 이 용 률 을 최적화 하고 스루풋 을 최대 화 하 며 지연 을 줄 이 고 잘못 사용 하 는 설정 을 확보 하 는 데 자주 사용 되 는 기술 이다.nginx 를 여러 애플 리 케 이 션 서버 에 데 이 터 를 할당 하고 nginx 를 사용 하여 웹 애플 리 케 이 션 의 성능 을 개선 하여 신축성 과 신뢰성 을 향상 시 킬 수 있 습 니 다.
    Tomcat 군집 배치
    생 성 docker-compose.yml, 정의 tomcat 서비스 클 러 스 터, 각각 대외 맵 포트 8080, 8081 과 8082
    version: '3'
    services:
      tomcat1:
        image: tomcat
        container_name: tomcat1
        ports:
          - 8080:8080
      tomcat2:
        image: tomcat
        container_name: tomcat2
        ports:
          - 8081:8080
      tomcat3:
        image: tomcat
        container_name: tomcat3
        ports:
          - 8082:8080
    

    시동 용기
    $ docker-compose up -d
    

    Nginx 자체 지원 부하 균형 메커니즘
    기본 값 (폴 링): 응용 프로그램 서버 에 대한 요청 을 폴 링 방식 으로 나 누 어 줍 니 다.
    upstream tomcatServers {
        server 192.168.127.130:8080;
        server 192.168.127.130:8081;
        server 192.168.127.130:8082;
    }
    

    minimum_conn (최소 연결): 다음 요청 을 이벤트 연결 수량 이 가장 적은 서버 에 할당 합 니 다.
    upstream tomcatServers {
        minimum_conn;
        server 192.168.127.130:8080;
        server 192.168.127.130:8081;
        server 192.168.127.130:8082;
    }
    

    ip - hash (세 션 지속 성): - 해시 함 수 는 다음 고정 요청 으로 어떤 서버 (클 라 이언 트 기반 IP 주소) 를 선택해 야 하 는 지 확인 하고 session 문 제 를 해결 하 는 데 사 용 됩 니 다.
    upstream tomcatServers {
        ip_hash;
        server 192.168.127.130:8080;
        server 192.168.127.130:8081;
        server 192.168.127.130:8082;
    }
    

    부하 균형 장치 에 대한 설정 설명
  • weight: 기본 값 은 1 이 고 값 이 클 수록 부하 의 가중치 가 큽 니 다
  • down: 현재 server 가 부하 에 잠시 참여 하지 않 음
  • max_fails: 요청 실패 횟수 를 기본적으로 1 로 허용 합 니 다. 최대 횟수 를 초과 할 때 proxy_next_upstream 모듈 에서 정의 한 오류
  • 를 되 돌려 줍 니 다.
  • fail_timeout: 트리거 max_fails 후 일시 정지 시간 입 니 다. 이 시간 이 지나 면 고장 난 서버 가 사용 가능 한 지 다시 탐지 합 니 다
  • backup: 기타 모든 비 backup 기계 down 또는 바 쁠 때 backup 기 계 를 요청 합 니 다.그래서 이 기계 의 압력 이 가장 가 벼 울 것 이다
  • Nginx 설정
    파일 생 성 docker-compose.yml, 마 운 트 nginx.conf, 외부 맵 포트 80
    version: '3.1'
    services:
      nginx:
        restart: always
        image: nginx
        container_name: nginx
        ports:
          - 80:81
        volumes:
          - ./nginx.conf:/etc/nginx/nginx.conf
    
    docker-compose.yml 같은 디 렉 터 리 에 파일 을 만 들 고 역방향 에이전트 와 부하 균형 을 설정 합 니 다.
    user  nginx;
    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
    
        keepalive_timeout  65;
    
            #      ,weight      ,    ,       
    	upstream tomcatServers {
                    minimum_conn;
    		server 192.168.127.130:8080 weight = 10;
                    server 192.168.127.130:8081 weight = 10;
                    server 192.168.127.130:8082 weight = 10;
    	}
    
    	server {
    		listen 81;
    		location / {
                            #         
    			proxy_pass http://tomcatServers;
                            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                            proxy_set_header Host $http_host;
                            proxy_set_header X-Forwarded-Proto $scheme;
                            proxy_set_header X-Real-IP $remote_addr;
    		}
    	}
    }
    

    시동 용기
    $ docker-compose up -d
    

    방문 하 다.http://192.168.127.130
  • 글 쓴 이: 펑 초
  • 본 고 는 개인 블 로그 에 첫 발 을 내 디 뎠 다.https://antoniopeng.com/2019/09/30/nginx/Nginx%E5%AE%9E%E7%8E%B0%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E5%8F%8A%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E9%85%8D%E7%BD%AE/
  • 저작권 성명: 본 블 로그 의 모든 글 은 특별 성명 을 제외 하고 CC BY - NC - SA 4.0 허가 협 의 를 사용한다.블 로그 | 블 로그!
  • 좋은 웹페이지 즐겨찾기