NGINX 의 흐름 제한 사고

2615 단어 NGINX
저 희 는 이런 상황 을 자주 만 납 니 다. 서버 자원 이 유한 하지만 클 라 이언 트 의 요청 이 계속 증가 하고 있 습 니 다. 일부 요청 이 정상적으로 대응 할 수 있 도록 일부 클 라 이언 트 의 요청 을 포기 해 야 합 니 다. 이 럴 때 저 희 는 줄 을 선택 하여 NGINX 의 흐름 제한 작업 을 할 것 입 니 다. 이런 조작 은 서버 의 압력 을 어느 정도 완화 시 킬 수 있 습 니 다.다른 정상 적 인 요청 이 정상 적 인 응답 을 받 을 수 있 도록 합 니 다.
    nginx 의 흐름 제한 전략 은 여러 가지 가 있 습 니 다. 다음은 흔히 볼 수 있 는 집중 흐름 제한 전략 에 대해 이야기 하 겠 습 니 다.
    1.  고정 IP 에 대해 흐름 을 제한 합 니 다. 이러한 전략 은 주로 같은 IP 반복 요청 서버 에 사 용 됩 니 다. 홍수 공격 이나 DDoS 공격 과 유사 하여 단일 ID 를 제한 하면 효과 적 입 니 다.
       단일 IP 에 대한 제한 설정
   vim nginx.conf 
    http        
   limit_zone one  $binary_remote_addr  30m;  
   limit_req_zone  $binary_remote_addr  zone=req_one:30m rate=10r/s;

limit_zone 은 모든 IP 에 session 공간 을 할당 하 는데 총 공간 크기 는 30m 입 니 다. 원 은 이름 을 정 의 했 습 니 다.  $bin_remote_add 는 IP 주소 입 니 다.
limit_req_zone 은 요청 빈 도 를 제한 합 니 다. 10 req / second 의 IP 접근 허용
    
     2.  IP 제한 병행 요청
   limit_conn perip 8;      
   limit_req zone=perreq nodelay;
       이것 은 IP 병발 최대 8 개 병발 요청 같은 IP 를 설정 하 는 것 입 니 다.
     3. 화이트 리스트 설정
     화이트 리스트 의 역할 은 특정한 IP 에 대해 요청 제한 을 하지 않 는 것 이다. 예 를 들 어 우리 자신의 IP 나 회사 내부 네트워크 의 IP 등 이다.
   geo $whiteiplist  {
        default 1;             ----  key=default,  value=1
        include conf/whiteip.conf;
   }

   map $whiteiplist  $limit {
        1 $binary_remote_addr;   --- value=1    $binary_remote_addr    IP         
        0 "";
   }

화이트 리스트 는 conf / whiteip. conf 파일 에 있 습 니 다. whiteip. conf 의 형식 key value 형식 입 니 다. 특정한 IP 가 빈 문자열 에 투사 할 수 있 습 니 다. 그러면 제한 작업 을 하지 않 습 니 다.
화이트 리스트 를 설정 하 는 방법 은 홈 페이지 에 상세 하 게 설명 되 어 있 으 니 여 기 를 보 세 요.
GEO 사용법    MAP 사용법
   
       4. 부하 균형 도 한 가지 라 고 할 수 있 습 니 다. 물론 그 는 자신의 유량 을 다른 기계 에 쏟 았 을 뿐 입 니 다.
nginx 의 부하 균형 설정 필드 는 upstream 입 니 다.
upstream lvs { 
        server localhost:8088 ; 
        server 192.168.1.123:8080 down; 
        server abc.tmc weight=2; 
        server server:9000 backup; 
} 
   server        ,   lvs
server { 
        listen 80; 
        location / { 
                proxy_pass http://lvs; 
        } 
        server_name my_proxy; 
} 

   upstream 설정 을 조금 설명 하 겠 습 니 다.
1. 다운 은 이 서버 가 부하 균형 에 참여 하지 않 음 을 나타 낸다.
2. weight 기본 값 은 1 이 며, weight 값 이 클 수록 할당 요청 이 많 습 니 다. 
3. max_fails 가 요청 한 최대 실패 수 를 허용 합 니 다.   최대 횟수 초과 시, proxy 로 돌아 가기next_upstream 모듈 정의 오류
4. fail_timeout: 몇 번 실 패 했 는 지 표시 한 후에 응답 하지 않 습 니 다.
5. back_up:  예비 기, 다른 기기 가 바 쁘 거나 끊 으 면 backup 기기 에 접근 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기