nginx는 가볍고 강력하며 수백 번의 동시성을 견딜 수 있습니다. Ddos 공격은 nginx 자체의 작업에 거의 영향을 미치지 않지만 너무 많은 요청은 백엔드 서비스에 영향을 미치기 시작합니다.
따라서 공격이 백엔드 서버에 도달하는 것을 방지하려면 nginx에서 해당 제한을 적용해야 합니다. 여기서 설명하는 것은 단위 시간당 요청 수를 제한할 수 있는 ngx_http_limit_req_module 모듈입니다.
여기서는 모듈을 설치하는 간단한 단계를 소개하지 않겠습니다. 구성 매개변수는 모두에게 유용할 것입니다. I. Nginx 제한 요청 번호 ngx_http_limit_req_module 모듈
(권장 학습:
) 키 값의 정의는 제한 매개변수입니다. http에 설정되어 있습니다.
limit_req_zone
구성 섹션: http
예:
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
핵심 값은 클라이언트 IP입니다.
$binary_remote_addr 변수를 사용하면 각 상태 레코드의 크기를 64바이트로 줄일 수 있으므로 1M 메모리에 약 16,000개의 64바이트 레코드를 저장할 수 있습니다. 제한된 도메인의 저장 공간이 소진되면 서버는 이후의 모든 요청에 대해 503(서비스를 일시적으로 사용할 수 없음) 오류를 반환합니다.속도는 초당 처리되는 요청 수와 분당 처리되는 요청 수로 설정할 수 있으므로 값은 정수여야 하므로 초당 1개 미만, 2초에 1개 요청을 지정해야 하는 경우에는 "30r/m" 을 사용할 수 있습니다.
2. 원하는 로그 수준을 설정하세요.
limit_req_log
구성 섹션: http, 서버, 위치
서버가 요청 처리를 거부하거나 지연할 때 기록할 수 있습니다. 빈도가 너무 높습니다. 해당 수준의 로그입니다. 지연된 로깅의 로그 수준은 거부된 로그 수준보다 한 수준 낮습니다. 예를 들어 "limit_req_log_level 통지"가 설정된 경우 지연된 로그는 정보 수준입니다.3. 오류 반환 값을 설정합니다.
구문: 제한_req_status 코드;기본값: 제한_req_status 503;구성 섹션: http, 서버, 위치
이 지시문은 버전 1.3.15에서 도입되었습니다. 거부된 요청에 대한 응답 상태 코드를 설정합니다.4. 해당 공유 메모리 제한 도메인과 처리할 수 있는 최대 요청 수를 설정합니다.
구문: Limit_req zone=name [burst=number] [nodelay];기본값: —구성 섹션: http, server, location
limit_req_zone $binary_remote_addr zone=ttlsa_com:10m rate=1r/s; server { location /www.ttlsa.com/ { limit_req zone=ttlsa_com burst=5; } }
limit_req zone=ttlsa_com burst=5 nodelay;
위 내용은 nginx가 요청 수를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!