nginx 를 사용 하여 부하 균형 과 HTTP 서버 를 만 듭 니 다.
부하 균형
부하 균형 이란 요청 을 여러 작업 단원 에 나 누 어 실행 하 는 것 을 의미한다. 쉽게 말 하면 규칙 (랜 덤 규칙, 가중치 규칙, session 규칙 등) 에 따라 요청 을 지정 한 서버 에 나 누 어 처리 하 는 것 이다. 일반적으로 역방향 프 록 시 를 동시에 설정 하고 역방향 프 록 시 를 통 해 부하 균형 으로 전환 해 야 한다.한편, Nginx 는 현재 3 가지 부하 균형 전략 을 지원 하고 2 가지 자주 사용 하 는 제3자 전략 도 있다.
1. RR (Nginx 기본 값 은 RR 정책) 모든 요청 은 시간 순서에 따라 서로 다른 백 엔 드 서버 에 할당 되 고 백 엔 드 서버 다운 이 떨 어 지면 자동 으로 삭 제 됩 니 다.
단순 설정
upstream webtest {
server 192.168.0.2:8080;
server 192.168.0.3:8081;
}
server {
listen 80;
server_name localhost;
client_max_body_size 1024M;
location / {
proxy_pass http://webtest;
proxy_set_header Host $host:$server_port;
}
}
8081 서버 가 끊 기 면 접근 합 니 다.http://localhost 때 에 도 문제 가 없 을 것 이 고, 기본 값 으로 넘 어 갈 것 이다http://localhost:8080.
2. 가중치
폴 링 확률 을 지정 하고 weight 와 방문 비율 이 정비례 하여 백 엔 드 서버 의 성능 이 고 르 지 않 은 경우 에 사용 합 니 다.예컨대
upstream test {
server 192.168.0.2:8080 weight=9;
server 192.168.0.3:8081 weight=1;
}
그러면 10 번 은 보통 1 번 만 8081 번 을 방문 하고 9 번 은 8080 번 을 방문 합 니 다.
3、ip_hash
위의 두 가지 방식 에 문제 가 있 습 니 다. 바로 다음 요청 이 왔 을 때 다른 서버 에 요청 을 보 낼 수 있 습 니 다. 프로그램 이 무 상태 가 아 닐 때 (session 으로 데 이 터 를 저장 합 니 다) 로그 인 정 보 를 session 에 저장 하면 다른 서버 로 이동 할 때 다시 로그 인 해 야 합 니 다.그래서 우 리 는 한 명의 고객 이 한 서버 만 방문 해 야 할 때 가 많 습 니 다. 그러면 ip 를 사용 해 야 합 니 다.hash 됐어, iphash 의 모든 요청 은 ip 에 접근 하 는 hash 결과 에 따라 분 배 됩 니 다. 모든 방문객 이 백 엔 드 서버 에 고정 적 으로 접근 하면 session 문 제 를 해결 할 수 있 습 니 다.
upstream test {
ip_hash;
server 192.168.0.2:8080;
server 192.168.0.3:8081;
}
4. fair (제3자 모듈 을 설치 해 야 함) 는 백 엔 드 서버 의 응답 시간 에 따라 요청 을 분배 하고 응답 시간 이 짧 은 우선 분 배 를 해 야 합 니 다.
upstream backend {
fair;
server 192.168.0.2:8080;
server 192.168.0.3:8081;
}
5、url_hash (제3자 모듈 을 설치 해 야 합 니 다) url 에 접근 한 hash 결과 에 따라 요청 을 할당 합 니 다. 모든 url 을 같은 백 엔 드 서버 로 지정 하고 백 엔 드 서버 가 캐 시 일 때 유효 합 니 다.upstream 에 hash 문 구 를 추가 하고 server 문 구 는 weight 등 다른 매개 변 수 를 기록 할 수 없습니다. hashmethod 는 hash 알고리즘 을 사용 합 니 다.
upstream backend {
hash $request_uri;
hash_method crc32;
server 192.168.0.2:8080;
server 192.168.0.3:8081;
}
:https://blog.csdn.net/qinyushuang/article/details/43953341
HTTP 서버 Nginx 자체 도 정적 자원 의 서버 입 니 다. 정적 자원 만 있 을 때 Nginx 를 사용 하여 서버 를 만 들 수 있 습 니 다. 또한 현재 도 동정 분리 가 유행 하고 있 습 니 다. Nginx 를 통 해 이 루어 질 수 있 습 니 다.
server {
listen 80;
server_name localhost;
client_max_body_size 1024M;
location / {
root /var/www/test;
index index.html;
}
}
하면, 만약, 만약...http://localhost 기본적으로 / var / www / root 디 렉 터 리 아래 의 index. html 에 접근 합 니 다. 만약 에 한 사이트 가 정적 페이지 일 뿐 이 라면 이런 방식 으로 배 치 를 실현 할 수 있 습 니 다.
동정 분리
동정 분 리 는 동적 사이트 안의 동적 웹 페이지 가 일정한 규칙 에 따라 변 하지 않 는 자원 과 자주 변 하 는 자원 을 구분 하도록 하 는 것 이다. 동정 자원 이 분 리 된 후에 우 리 는 정적 자원 의 특징 에 따라 캐 시 작업 을 할 수 있다. 이것 이 바로 사이트 정태 화 처리 의 핵심 방향 이다.
upstream servertest{
server 192.168.0.2:8080;
server 192.168.0.3:8081;
}
server {
listen 80;
server_name localhost;
location / {
root /var/www/test;
index index.html;
}
# nginx , html
location ~ \.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
root /var/www/test;
}
# tomcat
location ~ \.(jsp|do)$ {
proxy_pass http://servertest;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/test;
}
}
이렇게 HTML \ 그림 과 css, js 는 var / www / test 디 렉 터 리 에 두 고 tomcat 는 jsp 와 요청 만 처리 합 니 다.
nginx 설치 참고:https://codeday.me/collect/20170831/65586.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.