>  기사  >  운영 및 유지보수  >  nginx 로드 밸런싱 전략은 무엇입니까?

nginx 로드 밸런싱 전략은 무엇입니까?

(*-*)浩
(*-*)浩원래의
2019-07-15 13:40:533748검색

서버 클러스터에서 Nginx는 프록시 서버(예: 역방향 프록시) 역할을 수행하여 단일 서버에 대한 과도한 부담을 피하기 위해 사용자의 요청을 다른 서버로 전달합니다.

nginx 로드 밸런싱 전략은 무엇입니까?

Nginx 로드 밸런싱 전략

로드 밸런싱은 로드에 사용됩니다. "업스트림" 모듈에서 정의한 백엔드 서버 목록에서 사용자의 요청을 수락할 서버를 선택합니다. 가장 기본적인 업스트림 모듈은 다음과 같습니다. 모듈의 서버는 서버 목록입니다:

#动态服务器组
    upstream dynamic_zuoyu {
        server localhost:8080;  #tomcat 7.0
        server localhost:8081;  #tomcat 8.0
        server localhost:8082;  #tomcat 8.5
        server localhost:8083;  #tomcat 9.0
    }

업스트림 모듈 구성이 완료된 후 서버 목록에 대한 지정된 액세스를 역방향 프록시해야 합니다. 🎜🎜#

#其他页面反向代理到tomcat容器
        location ~ .*$ {
            index index.jsp index.html;
            proxy_pass http://dynamic_zuoyu;
        }
가장 기본적인 로드 밸런싱 인스턴스이지만 실제 요구 사항을 충족하기에는 부족합니다.

현재 Nginx 서버의 업스트림 모듈은 6개를 지원합니다. 배포 방법: #🎜🎜 #폴링 방법. 업스트림 모듈의 기본 로드 밸런싱 전략입니다. 각 요청은 시간순으로 하나씩 다른 백엔드 서버에 할당됩니다.

Weight 방법은 폴링 전략에 따라 폴링 확률을 지정합니다.

ip_hash는 클라이언트 IP를 기반으로 배포할 로드 밸런서를 지정합니다. 이 방법을 사용하면 동일한 클라이언트의 요청이 항상 동일한 서버로 전송되어 세션 세션을 보장할 수 있습니다. 이러한 방식으로 각 방문자는 백엔드 서버에 대한 고정 액세스 권한을 갖게 되어 세션이 서버를 넘을 수 없는 문제를 해결할 수 있습니다.

least_conn, 연결 수가 적은 백엔드 서버로 요청을 전달합니다. 폴링 알고리즘은 각 백엔드에 요청을 균등하게 전달하여 로드가 거의 동일하게 만듭니다. 그러나 일부 요청은 시간이 오래 걸리므로 해당 요청이 위치한 백엔드의 로드가 더 높아집니다. 이 경우, less_conn은 더 나은 로드 밸런싱 효과를 얻을 수 있습니다.

타사 로드 밸런싱 전략을 구현하려면 타사 플러그인을 설치해야 합니다.

fair, 서버의 응답 시간에 따라 요청을 할당하고, 응답 시간이 짧은 요청이 먼저 할당됩니다.

url_hash는 액세스한 URL의 해시 결과에 따라 요청을 할당하므로 각 URL은 동일한 백엔드 서버로 연결되며 캐시 적중과 함께 사용해야 합니다. 동일한 리소스에 대한 여러 요청이 서로 다른 서버에 도착할 수 있으므로 불필요한 다중 다운로드, 낮은 캐시 적중률 및 리소스 시간 낭비가 발생할 수 있습니다. url_hash를 사용하면 동일한 URL(즉, 동일한 리소스 요청)이 동일한 서버에 도달할 수 있습니다. 리소스가 캐시되면 요청이 수신될 때 캐시에서 읽을 수 있습니다. ​

더 많은 Nginx 관련 기술 기사를 보려면

Nginx 사용 튜토리얼

열을 방문하여 알아보세요!

위 내용은 nginx 로드 밸런싱 전략은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.