운영 및 유지보수 엔진스 nginx를 클러스터링할 수 있나요?

nginx를 클러스터링할 수 있나요?

Aug 28, 2019 pm 12:00 PM
nginx

nginx를 클러스터링할 수 있나요?

nginx를 클러스터링할 수 있나요?

nginx는 클러스터 고가용성을 실현합니다

NGINX는 역방향 프록시 서버로서 로드 밸런싱을 달성할 수 있고 정적 파일 서버로도 사용할 수 있다는 것이 특징입니다. 단일 머신에서 지원할 수 있다는 것입니다. 동시에 30,000개의 동시 실행. 이제 많은 웹사이트에서 NGINX를 게이트웨이 포털로 사용하여 백엔드 리소스를 균일하게 예약하고 할당합니다. 그러나 NGINX가 다운되면 전체 백엔드 서비스를 사용할 수 없게 되거나 동시성이 100,000 수준에 도달할 정도로 매우 큰 경우에도 하나의 NGINX에는 여전히 한계가 있으므로 이때 마스터-슬레이브 작업을 수행해야 합니다. NGINX에서 백업은 서비스의 고가용성을 보장하고 클러스터는 동시성 압력을 공유하는 데 사용됩니다. 현재 NGINX는 이 두 영역에서 주로 다음과 같은 솔루션을 가지고 있습니다.

NGINX 마스터-슬레이브 백업

NGINX가 마스터-슬레이브 백업을 구현하는 현재 주류 솔루션은 Keepalived+Nginx입니다. 이중 머신 핫 백업을 달성합니다.

Keepalived 소개:

Keepalived는 IP 단일 실패 지점을 방지하는 데 사용할 수 있는 VRRP 프로토콜 기반의 서비스 고가용성 솔루션입니다. 그러나 일반적으로 단독으로 나타나지 않고 다른 로드 밸런싱 기술(예: lvs, haproxy, nginx)과 함께 작동하여 클러스터의 고가용성을 달성합니다.

VRRP 프로토콜:

VRRP는 가상 라우터 중복 프로토콜인 Virtual Router Redundancy Protocol을 나타냅니다. 라우터의 고가용성을 달성하기 위한 내결함성 프로토콜로 간주할 수 있습니다. 동일한 기능을 제공하는 N개의 라우터가 라우터 그룹으로 구성됩니다. 이 그룹에는 마스터와 여러 개의 백업이 있지만 외부에서는 하나의 라우터처럼 보입니다. , 가상 IP(라우터가 위치한 LAN에 있는 다른 시스템의 기본 경로인 vip)를 사용하여 가상 라우터를 구성합니다. 이 IP를 소유한 마스터는 실제로 ARP 응답 및 IP 데이터 패킷 전달을 담당합니다. 그룹의 다른 라우터는 대기 역할을 합니다. 마스터는 멀티캐스트 메시지를 보냅니다. 백업이 시간 초과 기간 내에 vrrp 패킷을 수신할 수 없으면 마스터는 다운된 것으로 간주됩니다. 이때 고가용성을 보장하려면 VRRP 우선 순위에 따라 백업을 마스터로 선택해야 합니다. 라우터의.

VRRP 프로토콜 구현에서 가상 라우터는 00-00-5E-00-01-XX를 가상 MAC 주소로 사용합니다. XX는 고유한 VRID(Virtual Router IDentifier)입니다. 동시. 가상 라우터의 물리적 라우터 그룹에서는 멀티캐스트 IP 주소 224.0.0.18을 통해 정기적으로 알림 메시지가 전송됩니다. 각 라우터는 1-255 사이의 우선순위 레벨을 가지며, 가장 높은 우선순위가 마스터 라우터가 됩니다. 마스터의 우선순위를 낮추면 백업 상태의 라우터가 메인 라우터의 상태를 선점(pro-empt)할 수 있으며, 백업 우선순위가 동일한 두 IP 주소 중 더 큰 쪽이 마스터가 되어 가상 IP를 인수하게 됩니다.

구체적인 구현 원칙:

1) 마스터가 다운되지 않은 경우 마스터가 VIP를 점유하고 nginx가 마스터에서 실행됩니다.

2) 마스터가 다운된 경우 백업이 VIP를 점유하고 nginx를 실행합니다.

3) 마스터 서버의 nginx 서비스가 다운되면 VIP 리소스가 백업 서버로 이동됩니다

4) 백엔드 서버의 상태를 확인하세요

마스터와 서버 모두 Keepalived 서비스 중 하나가 중지되면 백업은 마스터 또는 백업에 관계없이 nginx 서비스를 활성화합니다. VIP는 keepalived 서비스가 여전히 실행 중인 노드로 이동합니다.

nginx를 클러스터링할 수 있나요?

NGINX 및 keepalived 설치 구성

설치 구성이 다양하고 상호 모니터링, 알람 등을 구현하기 위한 스크립트도 작성할 수 있으므로 특별히 해결 방법과 원리를 주로 다루는 강의를 들어보겠습니다.

NGINX 분산 클러스터

여러 NGINX로 로드 밸런싱을 수행하려면

1 각 nginx에는 도메인 이름에 동일한 도메인 이름의 여러 방향을 설정하는 것이 가장 쉬운 방법입니다. 라운드 로빈을 달성하기 위해. 그러나 결함 차단 속도는 느려집니다.

2. 하나의 공용 네트워크 nginx는 업스트림 기능, 휠, IP 및 URL을 통해 인트라넷의 여러 nginx에 배포됩니다. 하지만 공용 네트워크의 nginx가 다운되면 내부 네트워크 전체가 영향을 받습니다.

3. 한 쌍의 공용 네트워크 nginx와 3개의 공용 네트워크 IP를 사용하여 Keepalive를 통해 고가용성을 달성한 다음 인트라넷으로 업스트림합니다(이전 섹션에서 방금 설명한 마스터-슬레이브 백업입니다).

일반적으로 위의 1, 2, 3가지 방법으로 기본적으로 문제를 해결할 수 있으며, 2, 3을 사용하는 것이 좋습니다.

동시성이 정말 크다면 일반적으로 하드웨어 F5와 DNS 및 CDN과 함께 로드 밸런싱을 위한 기타 장비 서비스 제공업체와 협력하여 도메인 이름 확인 전달 및 캐시 구성을 수행합니다. 이는 대부분의 주요 제조업체의 현재 아키텍처 구성이기도 합니다.

더 많은 Nginx 관련 기술 기사를 보려면 Nginx 사용법 튜토리얼 칼럼을 방문하세요!

위 내용은 nginx를 클러스터링할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Nginx에서 클라우드 서버 도메인 이름을 구성하는 방법 Nginx에서 클라우드 서버 도메인 이름을 구성하는 방법 Apr 14, 2025 pm 12:18 PM

클라우드 서버에서 nginx 도메인 이름을 구성하는 방법 : 클라우드 서버의 공개 IP 주소를 가리키는 레코드를 만듭니다. Nginx 구성 파일에 가상 호스트 블록을 추가하여 청취 포트, 도메인 이름 및 웹 사이트 루트 디렉토리를 지정합니다. Nginx를 다시 시작하여 변경 사항을 적용하십시오. 도메인 이름 테스트 구성에 액세스하십시오. 기타 참고 : HTTPS를 활성화하려면 SSL 인증서를 설치하고 방화벽에서 포트 80 트래픽을 허용하고 DNS 해상도가 적용되기를 기다립니다.

Docker 컨테이너의 이름을 확인하는 방법 Docker 컨테이너의 이름을 확인하는 방법 Apr 15, 2025 pm 12:21 PM

단계를 따르면 Docker 컨테이너 이름을 쿼리 할 수 ​​있습니다. 모든 컨테이너 (Docker PS)를 나열하십시오. 컨테이너 목록을 필터링합니다 (GREP 명령 사용). 컨테이너 이름 ( "이름"열에 위치)을 가져옵니다.

nginx가 시작되었는지 확인하는 방법 nginx가 시작되었는지 확인하는 방법 Apr 14, 2025 pm 01:03 PM

nginx가 시작되었는지 확인하는 방법 : 1. 명령 줄을 사용하십시오 : SystemCTL 상태 nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. 포트 80이 열려 있는지 확인하십시오. 3. 시스템 로그에서 nginx 시작 메시지를 확인하십시오. 4. Nagios, Zabbix 및 Icinga와 같은 타사 도구를 사용하십시오.

Windows에서 nginx를 구성하는 방법 Windows에서 nginx를 구성하는 방법 Apr 14, 2025 pm 12:57 PM

Windows에서 Nginx를 구성하는 방법은 무엇입니까? nginx를 설치하고 가상 호스트 구성을 만듭니다. 기본 구성 파일을 수정하고 가상 호스트 구성을 포함하십시오. 시작 또는 새로 고침 Nginx. 구성을 테스트하고 웹 사이트를보십시오. SSL을 선택적으로 활성화하고 SSL 인증서를 구성하십시오. 포트 80 및 443 트래픽을 허용하도록 방화벽을 선택적으로 설정하십시오.

nginx 버전을 확인하는 방법 nginx 버전을 확인하는 방법 Apr 14, 2025 am 11:57 AM

nginx 버전을 쿼리 할 수있는 메소드는 다음과 같습니다. nginx -v 명령을 사용하십시오. nginx.conf 파일에서 버전 지시문을 봅니다. nginx 오류 페이지를 열고 페이지 제목을 봅니다.

nginx 서버를 시작하는 방법 nginx 서버를 시작하는 방법 Apr 14, 2025 pm 12:27 PM

Nginx 서버를 시작하려면 다른 운영 체제에 따라 다른 단계가 필요합니다. Linux/Unix System : Nginx 패키지 설치 (예 : APT-Get 또는 Yum 사용). SystemCTL을 사용하여 nginx 서비스를 시작하십시오 (예 : Sudo SystemCtl start nginx). Windows 시스템 : Windows 바이너리 파일을 다운로드하여 설치합니다. nginx.exe 실행 파일을 사용하여 nginx를 시작하십시오 (예 : nginx.exe -c conf \ nginx.conf). 어떤 운영 체제를 사용하든 서버 IP에 액세스 할 수 있습니다.

Docker가 컨테이너를 시작하는 방법 Docker가 컨테이너를 시작하는 방법 Apr 15, 2025 pm 12:27 PM

Docker Container Startup 단계 : 컨테이너 이미지를 당기기 : "Docker Pull [Mirror Name]"을 실행하십시오. 컨테이너 생성 : "docker"[옵션] [미러 이름] [명령 및 매개 변수]를 사용하십시오. 컨테이너를 시작하십시오 : "Docker start [컨테이너 이름 또는 ID]"를 실행하십시오. 컨테이너 상태 확인 : 컨테이너가 "Docker PS"로 실행 중인지 확인하십시오.

Docker 용 컨테이너를 만드는 방법 Docker 용 컨테이너를 만드는 방법 Apr 15, 2025 pm 12:18 PM

Docker에서 컨테이너 만들기 : 1. 이미지를 당기기 : Docker Pull [Mirror Name] 2. 컨테이너 만들기 : Docker Run [옵션] [미러 이름] [명령] 3. 컨테이너 시작 : Docker Start [컨테이너 이름]

See all articles