NGINX 부하 균형의 9
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx 의 if 내장nginx 설정 에 서 는 if 조건 의 논리 와 & 논리 또는 | 연산 을 지원 하지 않 으 며, if 의 내장 문법 을 지원 하지 않 습 니 다. 그렇지 않 으 면 다음 과 같은 오 류 를 보고 합 니 다: ng...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.