Nginx 역방향 에이전트 및 부하 균형 설정 실현
nginx 는 부하 균형 서버 로 서 사용자 가 먼저 nginx 에 도착 한 다음 에 nginx 가 부하 설정 에 따라 tomcat 서버 에 요청 을 배포 합 니 다.
역방향 프 록 시 는 외부 네트워크 가 내부 네트워크 서버 에 대한 악성 공격, 캐 시 를 방지 하여 서버 의 압력 과 접근 안전 통 제 를 줄 이 는 동시에 부하 균형 을 이 루어 사용자 요청 을 여러 서버 에 배분 할 수 있다.
부하 균형
부하 균형 은 자원 이 용 률 을 최적화 하고 스루풋 을 최대 화 하 며 지연 을 줄 이 고 잘못 사용 하 는 설정 을 확보 하 는 데 자주 사용 되 는 기술 이다.nginx 를 여러 애플 리 케 이 션 서버 에 데 이 터 를 할당 하고 nginx 를 사용 하여 웹 애플 리 케 이 션 의 성능 을 개선 하여 신축성 과 신뢰성 을 향상 시 킬 수 있 습 니 다.
Tomcat 군집 배치
생 성
docker-compose.yml
, 정의 tomcat
서비스 클 러 스 터, 각각 대외 맵 포트 8080, 8081 과 8082version: '3'
services:
tomcat1:
image: tomcat
container_name: tomcat1
ports:
- 8080:8080
tomcat2:
image: tomcat
container_name: tomcat2
ports:
- 8081:8080
tomcat3:
image: tomcat
container_name: tomcat3
ports:
- 8082:8080
시동 용기
$ docker-compose up -d
Nginx 자체 지원 부하 균형 메커니즘
기본 값 (폴 링): 응용 프로그램 서버 에 대한 요청 을 폴 링 방식 으로 나 누 어 줍 니 다.
upstream tomcatServers {
server 192.168.127.130:8080;
server 192.168.127.130:8081;
server 192.168.127.130:8082;
}
minimum_conn (최소 연결): 다음 요청 을 이벤트 연결 수량 이 가장 적은 서버 에 할당 합 니 다.
upstream tomcatServers {
minimum_conn;
server 192.168.127.130:8080;
server 192.168.127.130:8081;
server 192.168.127.130:8082;
}
ip - hash (세 션 지속 성): - 해시 함 수 는 다음 고정 요청 으로 어떤 서버 (클 라 이언 트 기반 IP 주소) 를 선택해 야 하 는 지 확인 하고
session
문 제 를 해결 하 는 데 사 용 됩 니 다.upstream tomcatServers {
ip_hash;
server 192.168.127.130:8080;
server 192.168.127.130:8081;
server 192.168.127.130:8082;
}
부하 균형 장치 에 대한 설정 설명
proxy_next_upstream
모듈 에서 정의 한 오류 max_fails
후 일시 정지 시간 입 니 다. 이 시간 이 지나 면 고장 난 서버 가 사용 가능 한 지 다시 탐지 합 니 다 backup
기계 down
또는 바 쁠 때 backup
기 계 를 요청 합 니 다.그래서 이 기계 의 압력 이 가장 가 벼 울 것 이다 파일 생 성
docker-compose.yml
, 마 운 트 nginx.conf
, 외부 맵 포트 80version: '3.1'
services:
nginx:
restart: always
image: nginx
container_name: nginx
ports:
- 80:81
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
docker-compose.yml
같은 디 렉 터 리 에 파일 을 만 들 고 역방향 에이전트 와 부하 균형 을 설정 합 니 다.user nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# ,weight , ,
upstream tomcatServers {
minimum_conn;
server 192.168.127.130:8080 weight = 10;
server 192.168.127.130:8081 weight = 10;
server 192.168.127.130:8082 weight = 10;
}
server {
listen 81;
location / {
#
proxy_pass http://tomcatServers;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
시동 용기
$ docker-compose up -d
방문 하 다.http://192.168.127.130
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.