Nginx 부분 (5) 부하 균형 과 자원 동정 분리
4067 단어 nginx
이 장의 내용 은 주로 제목 과 같이 설정 서버 의 균형 과 전후 분리 제품 의 동정 적 자원 처리 문 제 를 이해한다.
목차
부하 균형
1. 선착순 (기본 값)
2. 죄 송 하지만 분배 하 는 사람 이 공적 인 복 수 를 하 는 방식 (가중치)
3. 번 호 는 규칙 에 따라 분배 (ip hash)
4. 누가 빨리 하면 누가 할 까요?(fair, 제3자, upstream - fair 플러그 인 이 필요 합 니 다)
5. 고객 이름 에 따라 배정 해 드 리 겠 습 니 다 (url hash, 제3자)
동정 분리
부하 균형
부하 균형 에 대해 이야기 해 보 세 요. 어허, 뭐 그런 것 은 듣 기 에 높 은 것 같 습 니 다. 사실은 이렇게 신 이 나 지 않 았 습 니 다. 작은 가게 에 해당 합 니 다. 처음에 고객 이 적 기 때문에 뽀뽀 를 하 는 것 은 문제 가 없 었 습 니 다. 명성 이 알려 지면 한 사장 이 손님 을 접대 하 는 것 도 대응 하기 어렵 습 니 다. 손님 이 시간 내 에 접 대 를 받 지 못 하면 입 소문 에 영향 을 줄 수 있 습 니 다.그래서 종업원 을 모집 하고 서로 다른 손님 을 서로 다른 수요 방식 에 따라 종업원 에 게 나 누 어 대접 한다. 그러면 효율 이 향상 된다. 비슷 한 것 이 바로 이 예 이다.
그리고 우 리 는 초대 방식 에 대해 이야기 합 니 다. (예 를 들 어 가장 간단 한 설정 으로 쓸 것 입 니 다)
1. 선착순 (기본 값)
시간 순서에 따라 종업원 을 분배 하여 고객 을 접대 한다. 물론 불편 한 종업원 이 존재 한다 면 당연히 그 / 그녀 에 게 분배 하지 않 을 것 이다. 우 리 는 분배 할 때 이런 가능성 을 선별 할 것 이다.
upstream test {
server localhost:8080;
server localhost:8081;
}
server {
listen 81;
server_name localhost;
location / {
proxy_pass http://test;
proxy_set_header Host $host;
}
}
2. 죄 송 하지만 분배 하 는 사람 이 공적 인 복 수 를 하 는 방식 (가중치)
나 는 어떤 종업원 몇 명 에 게 매우 불쾌 하 다.
upstream test {
server localhost:8080 weight=9; // ,
server localhost:8081 weight=1;
}
3. 번 호 는 규칙 에 따라 분배 (ip hash)
또한 번 호 를 흔 들 어 분배 해 야 할 시기 가 되 었 으 니, 이렇게 하면 우리 사장 은 좀 공평 해 보인다.
upstream test {
ip_hash;
server localhost:8080;
server localhost:8081;
}
tip: (무상 태 프로그램 이 아 닌 경우, 일반적으로 우 리 는 이러한 방식 으로 서버 세 션 의 분실 문 제 를 피 합 니 다. 특히 session 에 대해 데 이 터 를 저장 합 니 다. 물론, 당신 자 체 는 sessino 를 공유 하여 처리 합 니 다. 내 가 말 하지 않 았 을 때)
4. 누가 빨리 하고 누가 할 까요? (fair, 제3자, upstream - fair 플러그 인 이 필요 합 니 다)
응답 시간 에 따라 빨리 많이 하고 능력 있 는 사람 이 많이 하 세 요.
upstream backend {
fair;
server localhost:8080;
server localhost:8081;
}
5. 고객 이름 에 따라 배정 해 드 리 겠 습 니 다 (url hash, 제3자)
좋아, 이 건 이 야 기 를 하기 어려워. 정상적으로 해.
url 에 접근 한 hash 결과 에 따라 요청 을 할당 합 니 다. 모든 url 을 같은 백 엔 드 서버 로 지정 합 니 다. upstream 에 hash 문 구 를 추가 하고 server 문 구 는 weight 등 다른 매개 변 수 를 기록 할 수 없습니다. hash method 는 hash 알고리즘 을 사용 합 니 다.
upstream backend {
hash $request_uri;
hash_method crc32;
server localhost:8080;
server localhost:8081;
}
동정 분리
사실 말하자면 자주 변동 하고 자주 변동 하지 않 는 파일 을 분배 하 는 것 이다. 웹 페이지 의 정적 화 현 폭 천의 이름 을 말 하 는 것 이 유행 하지 않 는가? 일정한 규칙 에 따라 이 자원 들 을 분리 하고 정적 자원 에 대해 일정한 캐 시 를 하 는 것 이다. 이것 은 아마도 이 명 사 를 절충 한 것 이다.
예 를 들 어:
upstream test{
server localhost:8080;
server localhost:8081;
}
server {
listen 80;
server_name localhost;
location / {
root /coffeeandice/html;
index index.html;
}
# nginx , html
location ~ .(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
root /coffeeandice/resource;
}
# tomcat
location ~ .(jsp|do)$ {
proxy_pass http://test;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /coffeeandice/html;
}
}
이렇게 하면 우 리 는
(1) HTML 및 기타 자원 을 coffeeandice 디 렉 터 리 에 넣 습 니 다.
(2) tomcat 는 jsp 와 요청 만 처리 합 니 다.
예 를 들 어 우리 가 gif 로 접 두 사 를 붙 였 을 때 Nginx 는 기본적으로 coffeeandice 에서 현재 요청 한 동적 그림 파일 을 가 져 옵 니 다. 물론 이곳 의 정적 파일 은 Nginx 와 같은 서버 입 니 다. 우 리 는 다른 서버 에 있 을 수 있 습 니 다. 그리고 역방향 프 록 시 와 부하 균형 을 통 해 설정 하면 됩 니 다. 가장 기본 적 인 절 차 를 알 면 많은 설정 이 간단 합 니 다.
그래, 끝내 자.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.