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 와 같은 서버 입 니 다. 우 리 는 다른 서버 에 있 을 수 있 습 니 다. 그리고 역방향 프 록 시 와 부하 균형 을 통 해 설정 하면 됩 니 다. 가장 기본 적 인 절 차 를 알 면 많은 설정 이 간단 합 니 다.
 그래, 끝내 자.

좋은 웹페이지 즐겨찾기