1. 폴링(기본값)
각 요청은 시간순으로 하나씩 다른 백엔드 서버에 할당됩니다. 백엔드 서버가 다운되면 자동으로 제거될 수 있습니다.
2. 가중치
는 폴링 확률을 지정하며, 백엔드 서버 성능이 고르지 않을 때 사용됩니다.
예:
다음과 같이 코드를 복사합니다.
업스트림 백엔드 {
server 192.168.0.14 Weight=10;
server 192.168.0.15 Weight=10;
}
3. ip_hash
각 요청은 접속된 IP의 해시 결과에 따라 할당되므로 각 방문자는 백엔드 서버에 고정된 접속 권한을 갖게 되어 세션 문제를 해결할 수 있습니다.
예:
다음과 같이 코드를 복사합니다.
upstream backend {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
4. fair(타사)
백엔드 서버의 응답 시간에 따라 요청을 할당하며, 응답 시간이 짧은 요청을 우선적으로 처리합니다.
다음과 같이 코드를 복사하세요.
upstream backend {
server server1.linuxany.com;
server server2.linuxany.com;
fair;
}
5. (타사)
액세스한 URL의 해시 결과에 따라 요청을 분산하여 각 URL이 동일한 백엔드 서버로 연결되도록 백엔드 서버를 캐시할 때 더욱 효과적입니다.
예: 업스트림에 해시 문을 추가합니다. 서버 문에는 가중치와 같은 다른 매개변수를 쓸 수 없습니다. hash_method는 사용되는 해시 알고리즘입니다.
다음과 같이 코드를 복사하세요.
업스트림 백엔드 {
server squid1: 3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
#로드 밸런싱 장치의 IP 및 장치 상태 정의
업스트림 백엔드 {
ip_hash ;
서버 127.0.0.1:9090 다운;
서버 127.0.0.1:8080 가중치=2;
서버 127.0.0.1:6060;
서버 127.0.0.1:7070 백업 ;
}
추가
proxy_pass http://bakend/;
각 장치의 상태는 다음으로 설정됩니다.
1.down은 이전 서버가 일시적으로 로드에 참여하지 않음을 의미합니다.
2.weight의 기본값은 1입니다. 가중치가 클수록 하중의 무게도 커집니다.
3.max_fails: 허용되는 요청 실패 횟수는 기본적으로 1입니다. 최대 횟수를 초과하면 Proxy_next_upstream 모듈에서 정의한 오류가 반환됩니다.
4.fail_timeout: max_fails 실패 후 일시 중지 시간입니다.
5.백업: 백업이 아닌 다른 머신이 모두 다운되거나 사용 중일 때 백업 머신을 요청하세요. 따라서 이 기계의 압력은 가장 낮습니다.
nginx는 사용되지 않는 서버에서 사용할 수 있도록 동시에 여러 그룹의 로드 밸런싱 설정을 지원합니다.
client_body_in_file_only는 디버깅을 위해 파일에 기록될 수 있습니다.
client_body_temp_path는 최대 3단계의 디렉토리 위치를 설정할 수 있습니다. URL과 일치하며 리디렉션될 수 있습니다. 또는 새로운 프록시 로드 밸런싱을 수행할 수 있습니다.
위 내용은 관련 내용을 포함하여 Nginx 업스트림의 5가지 가중치 할당 방법을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.