NGINX 부하 균형의 9

1. Nginx 부하 균형 모듈
ngx_http_proxy_module: proxy 프 록 시 모듈 은 요청 을 서버 노드 나 upstream 서버 풀 에 던 지 는 데 사 용 됩 니 다.ngx_http_upstream_module: 부하 균형 모듈 로 사이트 의 부하 균형 기능 과 노드 의 건강 검 사 를 실현 할 수 있 습 니 다.
2. upstream 모듈 문법
upstream server_pools {
    #ip_hash;
    server 10.3.151.34:81 weight=1;
    server 10.3.151.246:81 weight=1;
    }

3. upstream 모듈 태그 설명
upstream: 키 워드 는 있어 야 합 니 다.server_pools: upstream 클 러 스 터 그룹의 이름 으로 스스로 정의 하고 호출 할 때 사용 할 수 있 습 니 다.server: 키 워드 는 있어 야 합 니 다. 뒤에 도 메 인 이나 IP 를 연결 할 수 있 습 니 다. 포트 가 지정 되 지 않 으 면 기본 값 은 80 포트 입 니 다.weight: 서버 의 가중치 를 대표 합 니 다. 기본 값 은 1 입 니 다. 가중치 숫자 가 클 수록 받 아들 이 는 요청 비율 이 큽 니 다.ip_hash: 클 라 이언 트 IP 의 hash 결과 에 따라 동적 웹 페이지 의 session 공유 문 제 를 해결 하고 부하 스케줄 링 알고리즘 이 ip 일 때hash 시 백 엔 드 서버 는 부하 균형 스케줄 링 에서 weight 와 backup 을 사용 할 수 없습니다.
4. http proxy 모듈 관련 매개 변수
proxy: http 요청 header 항목 을 백 엔 드 서버 노드 에 전달 합 니 다. 예 를 들 어 프 록 시 백 엔 드 의 서버 노드 를 방문 클 라 이언 트 사용자 의 실제 IP 주 소 를 가 져 올 수 있 습 니 다.client_body_buffer_size: 클 라 이언 트 요청 주체 버퍼 크기 를 지정 하 는 데 사 용 됩 니 다. 여기 서 앞의 http 요청 패키지 의 원 리 를 알 면 이해 할 수 있 습 니 다.proxy_connection_timeout: 역방향 프 록 시 와 백 엔 드 노드 서버 가 연결 되 는 시간 초과, 즉 악 수 를 하고 응답 을 기다 리 는 시간 초과 시간 을 표시 합 니 다.proxy_send_timeout: 프 록 시 백 엔 드 서버 의 데이터 전송 시간 을 표시 합 니 다. 즉, 정 해진 시간 내 에 백 엔 드 서버 는 모든 데 이 터 를 전송 해 야 합 니 다. 그렇지 않 으 면 nginx 는 이 연결 을 끊 습 니 다.proxy_read_timeout: nginx 가 프 록 시 백 엔 드 서버 에서 정 보 를 얻 는 시간 을 설정 합 니 다. 연결 이 성공 한 후에 nginx 는 백 엔 드 서버 의 응답 시간 을 기다 리 고 있 습 니 다. 사실은 nginx 가 백 엔 드 줄 에 들 어가 처 리 를 기다 리 는 시간 입 니 다.proxy_buffer_size: 버퍼 크기 를 설정 합 니 다. 기본 버퍼 크기 는 명령 proxy 와 같 습 니 다.buffers 설정 크기 입 니 다.
5. 부하 균형 실전
5.1 네트워크 구조
웹 1: 10.3.151.34 (설치: nginx, 포트 감청: 80, 서버 이름: www. kang. com) 웹 2: 10.3.151.246 (설치: nginx, 포트 감청: 80, 서버 이름: www. kang. com) 클 라 이언 트: 10.3.15.1.86
5.2, 웹 1 nginx 설정 파일 은 다음 과 같 습 니 다.
worker_processes  1;
events {
    worker_connections  1024;
}
error_log  logs/error.log;
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    upstream server_pools {                             #       
        server 10.3.151.34:81 weight=1;
        server 10.3.151.246:81 weight=1;
        }

server {
        listen       80;
        server_name  www.kang.com;
        location / {
            proxy_pass http://server_pools;                 #proxy_pass   
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       81;
        server_name  www.kang.com;
        location / {
            root   html;
            index  index.html index.htm;       #index.html    :10.3.151.34 WWW SERVER
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    #include vhost/*.conf;
}

5.3, 웹 2 nginx 설정 파일 은 다음 과 같 습 니 다.
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    upstream server_pools {                            #       
        server 10.3.151.34 weight=1;
        server 10.3.151.246:81 weight=1;
        }

    server {
        listen       80;
        server_name  www.kang.com;
        location / {
            proxy_pass http://server_pools;        #proxy_pass  
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       81;
        server_name  www.kang.com;
        location / {
            root   html;
            index  index.html index.htm;              #index.html  :10.3.151.246 WWW SERVER
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

5.4. 클 라 이언 트 를 통 해 유효 여 부 를 검사 합 니 다.
[root@Auto-Operation ~]# for n in `seq 100`; do curl www.kang.com; sleep 1 ;done        #           
10.3.151.34 WWW SERVER
10.3.151.246  WWW SERVER
10.3.151.34 WWW SERVER

좋은 웹페이지 즐겨찾기