준비:
192.168.16.128
192.168.16.129
두 개의 가상 머신. Nginx 설치
Nginx 설치
yum 소스 파일 업데이트:
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
Nginx를 설치하세요:
냠 -y nginx 설치
작전 명령:
systemctl start nginx #Nginx 시작
systemctl nginx 중지 #Nginx 중지
고가용성이란 무엇입니까?
고가용성(High Availability) HA(High Availability)는 분산 시스템 아키텍처 설계 시 반드시 고려해야 할 요소 중 하나로, 일반적으로 설계를 통해 시스템이 서비스를 제공할 수 없는 시간을 줄이는 것을 의미합니다. 시스템이 항상 서비스를 제공할 수 있다면 가용성은 100%이지만 예상치 못한 상황이 발생합니다. 그래서 우리는 서비스 실패를 최대한 줄이기 위해 노력할 수밖에 없습니다.
문제가 해결됐나요?
프로덕션 환경에서 Nginx는 외부 서비스를 제공하기 위해 역방향 프록시로 사용되는 경우가 많습니다. 그러나 Nginx는 언젠가 서버 다운타임과 같은 오류에 직면하게 됩니다. Nginx가 다운되면 외부에서 제공되는 모든 인터페이스에 액세스할 수 없게 됩니다.
서버가 100% 사용 가능하다고 보장할 수는 없지만 이러한 비극을 피할 수 있는 방법을 찾아야 합니다. 오늘 우리는 Nginx
를 구현하기 위해 keepalived를 사용합니다. 고가용성.
이중 머신 핫 백업 솔루션
이 솔루션은 국내 기업에서 가장 일반적으로 사용되는 고가용성 솔루션입니다. 실제로 듀얼 서버 핫 백업은 한 서버가 서비스를 제공하고 다른 서버가 특정 서비스를 대기하는 상태를 의미합니다. 그의 장소.
연결 유지란 무엇입니까?
Keepalived 소프트웨어는 원래 LVS 클러스터 시스템의 각 서비스 노드 상태를 관리하고 모니터링하기 위해 LVS 로드 밸런싱 소프트웨어용으로 설계되었으며 나중에 고가용성 기능을 달성하기 위해 VRRP(Virtual Router Redundancy Protocol)를 추가했습니다. 따라서 Keepalived는 LVS 소프트웨어 관리 외에도 다른 서비스(예: Nginx, Haproxy, MySQL 등)에 대한 고가용성 솔루션 소프트웨어로 사용할 수도 있습니다
장애 조치 메커니즘
Keepalived 고가용성 서비스 간의 장애 조치 전송은 VRRP를 통해 구현됩니다.
Keepalived 서비스가 정상적으로 작동하면 마스터 노드는 백업 노드에 하트비트 메시지를 지속적으로 전송(멀티캐스트)하여 백업 노드에 아직 살아 있음을 알립니다. 마스터 노드가 실패하면 하트비트 메시지를 보낼 수 없으며 백업 노드는 따라서 노드는 더 이상 메인 마스터 노드의 하트비트를 감지할 수 없으므로 자체 인수 프로그램을 호출하여 메인 마스터 노드의 IP 자원 및 서비스를 인수합니다. 마스터 노드가 복구되면 백업 노드는 마스터 노드 장애 시 인수했던 IP 리소스와 서비스를 해제하고 원래의 백업 역할로 돌아갑니다.
구현 과정
연결 유지 설치
종속성을 자동으로 설치하는 yum 메소드를 사용하여 직접 설치할 수 있습니다.
냠 -y keepalived를 설치하세요
호스트(192.168.16.128) 연결 유지 구성 파일을 수정하세요
yum을 사용하여 설치하면 /etc/keepalived 아래에 구성 파일이 생성됩니다.
vi keepalived.conf
keepalived.conf:
#탐지스크립트
vrrp_script chk_http_port {
스크립트 "/usr/local/src/check_nginx_pid.sh" #nginx가 시작되었는지 감지하는 하트비트 실행 스크립트
간격 2 간격 2 #(스크립트 실행을 감지하는 간격, 단위는 초)
무게 2 }
#vrrp 인스턴스 정의 섹션
vrrp_instance VI_1 {
state MASTER # keepalived 역할을 지정합니다. MASTER가 기본 역할이고 BACKUP이 백업 역할입니다
인터페이스 ens33 # vrrp 통신을 위한 현재 네트워크 인터페이스 카드(현재 centos 네트워크 카드) ifconfig를 사용하여 특정 네트워크 카드를 확인하세요
Virtual_router_id 66 # 가상 경로 번호, 마스터 및 슬레이브는 항상 동일해야 합니다
Priority 100 # 우선순위, 값이 클수록 요청 처리 우선순위가 높아집니다
advert_int 1 # 간격 확인, 기본값은 1초(vrrp 멀티캐스트 주기 초)
#승인된액세스
인증 {
auth_type PASS #인증 유형과 비밀번호를 설정하세요. MASTER와 BACKUP은 정상적인 통신을 위해 동일한 비밀번호를 사용해야 합니다
auth_pass 1111
}
track_script {
chk_http_port #(통화 감지 스크립트)
}
virtual_ipaddress {
192.168.16.130 192.168.16.130 # 가상 IP(VIP)를 정의하면 한 줄에 하나씩 여러 개 설정할 수 있습니다
}
}
VIP는 virtual_ipaddress에서 구성할 수 있으며, VIP를 통해 온라인으로 서비스에 접속할 수 있습니다.
인터페이스는 서버 네트워크 카드에 따라 설정되어야 합니다. 일반적인 보기 방법은 ip addr
입니다. 백업 머신에 대한 인증 구성 승인 액세스에도 동일한 구성이 필요합니다
백업 머신(192.168.16.129) 연결 유지 구성 파일을 수정하세요
keepalived.conf:
#탐지스크립트
vrrp_script chk_http_port {
스크립트 "/usr/local/src/check_nginx_pid.sh" #nginx가 시작되었는지 감지하는 하트비트 실행 스크립트
간격 2 간격 2 #(스크립트 실행을 감지하는 간격)
무게 2 }
#vrrp 인스턴스 정의 섹션
vrrp_instance VI_1 {
state BACKUP # keepalived 역할을 지정합니다. MASTER가 기본 역할이고 BACKUP이 백업 역할입니다. 인터페이스 ens33 # vrrp 통신을 위한 현재 네트워크 인터페이스 카드(현재 centos 네트워크 카드) ifconfig를 사용하여 특정 네트워크 카드를 확인하세요
virtual_router_id 66 # 가상 경로 번호, 마스터 및 슬레이브는 항상 동일해야 합니다. 우선순위 99 ~ 광고_INT 1 #승인된액세스
인증 {
auth_type PASS #인증 유형과 비밀번호를 설정하세요. MASTER와 BACKUP은 정상적인 통신을 위해 동일한 비밀번호를 사용해야 합니다
auth_pass 1111
}
track_script {
chk_http_port }
Virtual_i주소 {
192.168.16.130 192.168.16.130 # 가상 IP(VIP)를 정의하면 한 줄에 하나씩 여러 개 설정할 수 있습니다
}
}
감지 스크립트:
#!/bin/bash
#nginx가 시작되었는지 감지
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then #nginx가 시작되지 않은 경우 nginx를 시작합니다. systemctl start nginx #Restart nginx
[ `ps -C nginx --no-header |wc -l` -eq 0 ]; #nginx가 다시 시작되지 않으면 연결 유지 서비스를 중지하고 VIP 전송을 수행하세요
+ fi
fi
스크립트 인증: chmod 775 check_nginx_pid.sh
참고: 스크립트는 승인되어야 하며, 그렇지 않으면 액세스 권한이 없습니다. 여기에는 실행할 두 개의 서버인 VIP(virtual_ipaddress:192.168.16.130)가 있습니다. 프로덕션 환경에서는 VIP를 통해 직접 서비스에 액세스합니다.
nginx 실패 시뮬레이션:
두 서버가 기본적으로 액세스하는 Nginx html 페이지를 차이점으로 수정합니다.
먼저 192.168.16.130을 방문하여 VIP를 통해 접속하세요. 페이지에는 현재 메인 서버에서 서비스를 제공하고 있음을 나타내는 192.168.16.128이 표시됩니다.
이때 192.168.16.128 메인 서버는
명령을 실행합니다. systemctl nginx 중지 #nginx 중지
vip(192.168.16.130)를 다시 방문하여 페이지가 여전히 192.168.16.128로 표시되는지 확인하세요. 이는 스크립트에서 자동으로 다시 시작되는 것입니다.
이제 192.168.16.128 서버를 직접 닫고 여기 VIP(192.168.16.130)를 방문하면 페이지에 192.168.16.129가 표시됩니다. 이때 연결 유지는 자동으로 장애 조치되며 엔터프라이즈 수준 프로덕션 환경을 위한 고가용성 솔루션입니다. 설립되었습니다.
위 내용은 Nginx 고가용성을 달성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

NginXunit은 여러 프로그래밍 언어를 지원하고 동적 구성, 제로 다운 타임 업데이트 및 내장로드 밸런싱과 같은 기능을 제공하는 오픈 소스 응용 프로그램 서버입니다. 1. 동적 구성 : 다시 시작하지 않고 구성을 수정할 수 있습니다. 2. 다국어 지원 : Python, Go, Java, PHP 등과 호환됩니다. 3. 제로 다운 타임 업데이트 : 서비스를 중단하지 않는 응용 프로그램 업데이트를 지원합니다. 4. 내장로드 밸런싱 : 요청을 여러 응용 프로그램 인스턴스에 배포 할 수 있습니다.

NginxUnit은 다국어 프로젝트 및 동적 구성 요구 사항에 적합한 Apachetomcat, Gunicorn 및 Node.js 내장 HTTP 서버보다 낫습니다. 1) 여러 프로그래밍 언어를 지원하고, 2) 동적 구성 재 장전을 제공합니다. 3) 확장 성과 신뢰성이 높은 프로젝트에 적합한 내장로드 밸런싱 기능.

NginxUnit은 모듈 식 아키텍처 및 동적 재구성 기능으로 응용 프로그램 성능 및 관리 가능성을 향상시킵니다. 1) 모듈 식 설계에는 마스터 프로세스, 라우터 및 응용 프로그램 프로세스가 포함되어 효율적인 관리 및 확장을 지원합니다. 2) 동적 재구성을 통해 CI/CD 환경에 적합한 런타임시 구성을 완벽하게 업데이트 할 수 있습니다. 3) 다국어 지원은 언어 런타임의 동적로드를 통해 구현되어 개발 유연성을 향상시킵니다. 4) 고성능은 이벤트 중심 모델과 비동기 I/O를 통해 달성되며 높은 동시성에서도 효율적으로 유지됩니다. 5) 응용 프로그램 프로세스를 분리하고 응용 프로그램 간의 상호 영향을 줄임으로써 보안이 향상됩니다.

NginxUnit을 사용하여 여러 언어로 응용 프로그램을 배포하고 관리 할 수 있습니다. 1) nginxunit을 설치하십시오. 2) Python 및 PHP와 같은 다른 유형의 응용 프로그램을 실행하도록 구성하십시오. 3) 응용 프로그램 관리에 동적 구성 기능을 사용하십시오. 이러한 단계를 통해 응용 프로그램을 효율적으로 배포하고 관리하고 프로젝트 효율성을 향상시킬 수 있습니다.

Nginx는 높은 동시 연결을 처리하는 데 더 적합한 반면 Apache는 복잡한 구성 및 모듈 확장이 필요한 시나리오에 더 적합합니다. 1.NGINX는 고성능 및 낮은 자원 소비로 유명하며 높은 동시성에 적합합니다. 2. Aapache는 안정성과 풍부한 모듈 확장으로 유명하며 복잡한 구성 요구에 적합합니다.

NginxUnit은 동적 구성 및 고성능 아키텍처로 응용 프로그램 유연성 및 성능을 향상시킵니다. 1. 동적 구성을 사용하면 서버를 다시 시작하지 않고 응용 프로그램 구성을 조정할 수 있습니다. 2. 고성능은 이벤트 중심 및 비 블로킹 아키텍처 및 다중 프로세스 모델에 반영되며 동시 연결을 효율적으로 처리하고 멀티 코어 CPU를 활용할 수 있습니다.

Nginx와 Apache는 성능, 확장 성 및 효율성 측면에서 고유 한 장점과 단점을 가진 강력한 웹 서버입니다. 1) NGINX는 정적 컨텐츠를 처리하고 역전 프록시를 처리 할 때 잘 수행되며 동시 동시성 시나리오에 적합합니다. 2) Apache는 동적 컨텐츠를 처리 할 때 더 나은 성능을 발휘하며 풍부한 모듈 지원이 필요한 프로젝트에 적합합니다. 서버 선택은 프로젝트 요구 사항 및 시나리오에 따라 결정해야합니다.

Nginx는 높은 동시 요청을 처리하는 데 적합한 반면 Apache는 복잡한 구성 및 기능 확장이 필요한 시나리오에 적합합니다. 1.NGINX는 이벤트 중심의 비 블로킹 아키텍처를 채택하며, 대결 환경에 적합합니다. 2. Apache는 프로세스 또는 스레드 모델을 채택하여 복잡한 구성 요구에 적합한 풍부한 모듈 생태계를 제공합니다.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

드림위버 CS6
시각적 웹 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

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