기업은 일반적으로 높은 동시성 문제를 해결할 때 소프트웨어와 하드웨어라는 두 가지 처리 전략을 사용합니다. 하드웨어에서는 로드 밸런서를 추가하여 많은 요청을 분산합니다. 소프트웨어 측면에서는 높은 동시성 병목 현상이 발생할 때 솔루션을 추가할 수 있습니다. : 데이터베이스 + 웹 서버. 그 중 웹 서버의 프론트 레이어에 가장 일반적으로 사용되는 로드 추가 솔루션은 로드 밸런싱을 위해 nginx를 사용하는 것입니다.
1. 로드 밸런싱의 역할
1. 전달 기능
특정 알고리즘[가중치, 폴링]에 따라 클라이언트 요청을 다른 응용 프로그램 서버로 전달하여 단일에 대한 부담을 줄입니다. 서버. 시스템 동시성을 높입니다.
2. 오류 제거
하트비트 감지를 사용하여 현재 애플리케이션 서버가 정상적으로 작동할 수 있는지 확인합니다. 서버에 장애가 발생하면 요청이 자동으로 다른 애플리케이션 서버로 전송됩니다.
3. 복구 추가
(추천 학습: nginx 튜토리얼)
실패한 애플리케이션 서버가 작업을 재개한 것으로 감지되면 사용자 요청을 처리하는 팀에 자동으로 추가됩니다.
2. Nginx는 로드 밸런싱을 구현합니다.
또한 두 개의 Tomcat을 사용하여 두 개의 애플리케이션 서버를 시뮬레이션하며 포트 번호는 각각 8080과 8081입니다.
1 Nginx의 로드 분산 전략
Nginx의 업스트림은 현재 할당 알고리즘을 지원합니다.
1), 폴링 - 요청을 1:1로 순차적으로 처리(기본)
각 요청은 시간순으로 하나씩 다른 애플리케이션 서버에 할당되며, 애플리케이션 서버가 다운되면 자동으로 제거됩니다. 나머지 계속 폴링.
2), 가중치 - you can you up
가중치를 구성하여 폴링 확률을 지정하며, 가중치는 접속률에 비례하며, 애플리케이션 서버 성능이 고르지 않은 경우에 사용됩니다.
3), ip_hash 알고리즘
각 요청은 접속된 IP의 해시 결과에 따라 할당되므로 각 방문자는 애플리케이션 서버에 고정된 접속 권한을 가지게 되어 세션 공유 문제를 해결할 수 있습니다.
2. Nginx의 로드 밸런싱 및 배포 전략을 구성합니다
이는 다음과 같이 업스트림 매개변수에 애플리케이션 서버 IP를 추가한 후 지정된 매개변수를 추가하여 달성할 수 있습니다.
upstream tomcatserver1 { server 192.168.72.49:8080 weight=3; server 192.168.72.49:8081; } server { listen 80; server_name 8080.max.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://tomcatserver1; index index.html index.htm; } }
위 구성을 통해 달성할 수 있습니다. 8080에 접속할 때, max.com이 웹사이트인 경우 proxy_pass 주소가 구성되어 있으므로 모든 요청은 먼저 nginx 역방향 프록시 서버를 통과하게 됩니다. 서버가 요청을 대상 호스트인 업스트림 주소로 전달합니다. tomcatsever1을 읽고 배포 정책을 읽습니다. tomcat1의 가중치를 3으로 구성하면 nginx는 대부분의 요청을 서버 49(포트 8080)에 tomcat2로 보내 조건부 로드 밸런싱을 달성합니다. 물론 이 조건은 서버 1과 2의 하드웨어 인덱스입니다. 요청 처리 능력입니다.
3. nginx
upstream myServer { server 192.168.72.49:9090 down; server 192.168.72.49:8080 weight=2; server 192.168.72.49:6060; server 192.168.72.49:7070 backup; }
1) down
의 다른 구성은 주문 앞에 있는 서버가 일시적으로 로드에 참여하지 않는다는 의미입니다.
2) Weight
기본값은 1입니다. 짐의 무게가 더 커집니다.
3) max_fails
허용되는 요청 실패 횟수는 기본적으로 1입니다. 최대 횟수를 초과하면 Proxy_next_upstream 모듈에서 정의한 오류가 반환됩니다.
4) fall_timeout
max_fails 실패 후 일시 중지 시간입니다.
5) 백업
백업이 아닌 다른 머신이 모두 다운되거나 사용 중일 때 백업 머신을 요청하세요. 따라서 이 기계의 압력은 가장 낮습니다.
3. 고가용성을 위해 Nginx를 사용하세요
웹사이트의 고가용성을 달성하는 것 외에도, 즉 n개의 서버를 여러 대 제공하여 동일한 서비스를 게시하고, 로드 밸런싱 서버를 추가하여 요청을 분산시켜 각 서버가 높은 동시성으로 작동 상대적으로 포화된 요청을 처리할 수 있습니다. 마찬가지로, 로드 밸런싱 서버도 중단되면 후속 애플리케이션 서버가 중단되고 작동할 수 없게 되는 것을 방지하기 위해 로드 밸런싱 서버도 가용성이 높아야 합니다.
고가용성을 달성하기 위한 솔루션: 중복성을 추가합니다. 위의 단일 실패 지점을 방지하려면 n개의 nginx 서버를 추가하세요.
IV. 요약
요약하자면, 로드 밸런싱은 다양한 소프트웨어든 하드웨어 솔루션이든 주로 특정 규칙에 따라 다수의 동시 요청을 여러 서버에 분산시켜 특정 서버의 로드를 줄이는 것입니다. . 즉각적인 압력을 가하고 웹사이트의 동시성 방지 기능을 향상시킵니다. 저자는 nginx가 로드 밸런싱에 널리 사용되는 이유는 nginx.conf 파일이 nginx가 가상 서버를 생성하든, nginx 리버스 프록시 서버든, 이 기사에서 소개하는 nginx이든 대부분의 문제를 해결한다고 믿습니다. . 로드 밸런싱은 거의 항상 이 구성 파일에서 수행됩니다. 서버는 nginx를 설정하고 실행하는 역할만 담당합니다. 또한, 가볍고 서버 리소스를 너무 많이 차지하지 않고도 더 나은 결과를 얻을 수 있습니다.
위 내용은 로드 밸런싱을 달성하도록 Nginx 구성(그림)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

NGINX는 이벤트 중심 아키텍처 및 비동기 처리 기능을 통해 성능을 향상시키고 모듈 식 설계 및 유연한 구성을 통해 확장 성을 향상 시키며 SSL/TLS 암호화 및 요청 속도 제한을 통해 보안을 향상시킵니다.

NGINX는 동시성이 높은 자원 소비 시나리오에 적합하지만 APACHE는 복잡한 구성 및 기능 확장이 필요한 시나리오에 적합합니다. 1.NGINX는 고성능과의 많은 동시 연결을 처리하는 것으로 알려져 있습니다. 2. Apache는 안정성과 풍부한 모듈 지원으로 유명합니다. 선택할 때는 특정 요구에 따라 결정해야합니다.

nginxissentialderformodernwebapplicationsduetoitsrolessareareverseproxy, loadbalancer 및 Webserver, HighperformanceAndscalability를 제공합니다

Nginx를 통해 웹 사이트 보안을 보장하려면 다음 단계가 필요합니다. 1. 기본 구성을 만들고 SSL 인증서 및 개인 키를 지정하십시오. 2. 구성 최적화, HTTP/2 및 OCSPStapling 활성화; 3. 인증서 경로 및 암호화 제품군 문제와 같은 공통 오류 디버그; 4. Let 'sencrypt 및 세션 멀티플렉싱 사용과 같은 응용 프로그램 성능 최적화 제안.

NGINX는 고성능 HTTP 및 리버스 프록시 서버로 높은 동시 연결을 처리하는 데 능숙합니다. 1) 기본 구성 : 포트를 듣고 정적 파일 서비스를 제공합니다. 2) 고급 구성 : 리버스 프록시 및로드 밸런싱을 구현하십시오. 3) 디버깅 기술 : 오류 로그를 확인하고 구성 파일을 테스트하십시오. 4) 성능 최적화 : GZIP 압축을 활성화하고 캐시 정책을 조정합니다.

Nginx 캐시는 다음 단계를 통해 웹 사이트 성능을 크게 향상시킬 수 있습니다. 1) 캐시 영역을 정의하고 캐시 경로를 설정하십시오. 2) 캐시 유효성 기간 구성; 3) 다른 컨텐츠에 따라 다른 캐시 정책을 설정합니다. 4) 캐시 저장 및로드 밸런싱을 최적화합니다. 5) 캐시 효과를 모니터링하고 디버그합니다. 이러한 방법을 통해 NGINX 캐시는 백엔드 서버 압력을 줄이고 응답 속도 및 사용자 경험을 향상시킬 수 있습니다.

dockercompose를 사용하면 Nginx의 배포 및 관리를 단순화 할 수 있으며 Dockerswarm 또는 Kubernetes를 통한 스케일링은 일반적인 관행입니다. 1) DockerCompose를 사용하여 Nginx 컨테이너를 정의하고 실행하십시오. 2) Dockerswarm 또는 Kubernetes를 통한 클러스터 관리 및 자동 스케일링 구현.

NGINX의 고급 구성은 서버 블록 및 리버스 프록시를 통해 구현 될 수 있습니다. 1. 서버 블록을 사용하면 여러 웹 사이트를 한쪽으로 실행할 수있게되면 각 블록은 독립적으로 구성됩니다. 2. 리버스 프록시는 요청을 백엔드 서버로 전달하여로드 밸런싱 및 캐시 가속도를 실현합니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.
