nginx 로드 밸런싱을 구성하는 방법에는 여러 가지가 있습니다. 여기서는 Nginx 로드 밸런싱을 구성하는 두 가지 방법을 소개하겠습니다. 다음으로 nginx 로드 밸런싱의 일반적인 구성 방법을 자세히 살펴보겠습니다.
nginx는 백엔드 웹 서버(apache, nginx, tomcat, weblogic) 등에 대해 역방향 프록시를 수행합니다.
여러 백엔드 웹 서버에서는 파일 공유 및 데이터베이스 공유 세션 공유 문제 파일 공유는 nfs, 공유 저장소(fc, ip 저장소) + redhat GFS 클러스터 파일 시스템, rsync + inotify 파일 동기화 등을 사용할 수 있습니다. 소규모 클러스터는 더 많은 nfs를 사용합니다. 단일 서버에 정보를 게시하고 rsync+inotify를 사용하여 여러 서버에 동기화하는 것이 좋습니다.
소규모 클러스터, 단일 고성능 데이터베이스(예: Zhiqiang 듀얼 쿼드 코어, 32/ 64/ 128G 메모리)이면 충분합니다. 대규모 클러스터의 경우 mysql에서 공식적으로 제공하는 클러스터 소프트웨어를 사용하거나 keepalived+lvs를 사용하여 읽기와 쓰기를 분리하여 Mysql을 생성할 수 있습니다. Cluster
session 공유 문제는 nginx가 ip_hash 폴링 방식을 채택하면 각 IP가 일정 시간 내에 백엔드 서버에 고정되므로 세션 공유 문제를 해결해야 합니다. 반대로
IP에 대한 요청이 폴링되고 분산됩니다. 여러 서버에서 세션 공유 문제를 해결하려면 nfs를 사용하여 세션을 공유할 수 있습니다. 머신 크기가 상대적으로 클 경우 일반적으로 memcache에 세션을 작성하는 방법을 사용합니다.
먼저 나중에 호출할 수 있도록 새 A Proxy.conf 파일을 만듭니다. 여러 클러스터를 구성하는 경우 공용 매개변수를 파일에 기록한 다음 계속 포함하는 것이 좋은 방법입니다)
vi /usr/local/nginx/conf/proxy.conf
proxy_redirect off;#🎜 🎜#proxy_set_header 호스트 $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header buffer_size 90;
proxy_connect_timeout 90;
proxy_read_timeout 90;#🎜🎜 #proxy_buffer_size 4k;# 🎜🎜#proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
pr oxy_temp_file_write_size 64
여기서는 nginx의 두 가지 로드 밸런싱 방법인 폴링 가중치에 대해 설명합니다. , 1:1 로드) 및 ip_hash(세션 문제를 해결하기 위해 고정된 백엔드 서버에 동일한 IP가 할당됩니다)
이 구성 파일은 nginx.conf에 작성할 수 있습니다(하나만 있는 경우). 웹 클러스터) 여러 개의 웹 클러스터가 있는 경우 가상 호스트 형태로 가상 호스트에 작성하는 것이 가장 좋습니다. 여기서는 nginx.conf
에 작성합니다. 첫 번째 구성: 가중치 폴링, 가중치는 다음과 같습니다. 이 예에서는 할당이 1:2입니다.
upstream lb { server 192.168.196.130 weight=1 fail_timeout=20s; server 192.168.196.132 weight=2 fail_timeout=20s; } server { listen 80; server_name safexjt.com www.safexjt.com; index index.html index.htm index.php; location / { proxy_pass http://lb; proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header; include proxy.conf; } }두 번째 구성: ip_hash 폴링 방법, 서버에 가중치를 부여할 수 없음#🎜🎜 #
upstream lb { server 192.168.196.130 fail_timeout=20s; server 192.168.196.132 fail_timeout=20s; ip_hash; } server { listen 80; server_name safexjt.com www.safexjt.com; index index.html index.htm index.php; location / { proxy_pass http://lb; proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header; include proxy.conf; } }
방법 2 nginx 로드 밸런싱은 ip_hash
1을 기반으로 세션 붙여넣기를 구현합니다.Polling(기본값)
각 요청은 시간순으로 하나씩 다른 백엔드 서버에 할당됩니다. 백엔드가 다운되면 자동으로 제거됩니다.
upstream backserver { server 192.168.0.14; server 192.168.0.15; }
2. 가중치 지정
폴링 확률 지정 가중치는 접속률에 비례하며 백엔드 서버 성능이 고르지 않을 때 사용됩니다.upstream backserver { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; }
upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; }
upstream backserver { server server1; server server2; fair; }
upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; }
proxy_pass http://backserver/; upstream backserver{ ip_hash; server 127.0.0.1:9090 down; (down 表示单前的server暂时不参与负载) server 127.0.0.1:8080 weight=2; (weight 默认为1.weight越大,负载的权重就越大) server 127.0.0.1:6060; server 127.0.0.1:7070 backup; (其它所有的非backup机器down或者忙的时候,请求backup机器) }
관련 권장 사항:
여러 Nginx 구현 로드 균형 잡힌 방식
위 내용은 nginx 로드 밸런싱을 구성하는 방법은 무엇입니까? nginx 로드 밸런싱 구성 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!