Nginx 사재 기 제한 설정

업무 수요 로 인해 사재 기 업무 가 자주 발생 하기 때문에 부하 균형 전단 에서 흐름 제한 오 류 를 해 야 한다.본문 역시 CC 방지 에 도 적용 된다.
    limit_req_zone $server_name zone=sname:10m rate=1r/s;               #                
        #limit_req_zone $binary_remote_addr zone=one:3m rate=1r/s;        #  IP,        
        #limit_req_zone $binary_remote_addr$uri zone=two:3m rate=1r/s;    #  IP       ,
        #limit_req_zone $binary_remote_addr$request_uri zone=thre:3m rate=1r/s;   #  IP        

    server {
        listen       80;
        server_name  www.abc.com;
        location / {
                include host/proxy.cnf;
                proxy_pass http://backend;
        }
        location /api/createOrder {
                limit_req zone=sname;    #    ,         
                limit_req_status 503;       #         503
                #limit_req zone=sname burst=5 nodelay;   #     5,      
                include host/proxy.cnf;
                proxy_pass http://backend;
                error_page 503 =200 /50x.html;      #     ,         503,        200
        }
        location = /50x.html {
                if ($http_user_agent ~* "mobile|android|iPhone|iphone|ios|iOS"){
                        #default_type application/json;
                        return 200 '{"msg": "      ,     !","data": {},"code": -1}';   #              
                }
                root   html;     #   PC     HTML  
        }
        }

중점: 정상 적 인 상황 에서 흐름 제한 이 설정 되 어 있 으 면 503 의 상태 코드 로 되 돌아 갑 니 다. 이것 은 모 바 일 에서 JSON 데 이 터 를 되 돌려 주 더 라 도 클 라 이언 트 가 알 아 보지 못 할 때 교묘 하 게 error 를 통 해page 403 =200 /50x.html;상태 코드 를 200 으로 설정
지금까지 ngx 만 사 용 했 습 니 다.limit_req_module, 동시에 ngx 를 사용 할 수 있 습 니 다.limit_conn_모듈 모듈.
이상 참조:https://gist.github.com/simlegate/75b18359316cc33d8e20
특히 일부 컨설팅 사이트 에 서 는 파충류 가 눈 에 띄 면 서버 가 파충류 에 의 해 말 라 죽 을 수도 있다 (작은 사이트 가 그렇다). 그러면 어떻게 해 야 할 까? 우 리 는 변 수 를 사용 하여 할 수 있다.
#    
limit_req_zone $spider zone=spider:60m rate=200r/m;    #          200 
#  server 
limit_req zone=spider burst=5 nodelay;
if ($http_user_agent ~* “spider|bot”) {
    set $spider $http_user_agent;      #    ,          
}

좋은 웹페이지 즐겨찾기