찾다
운영 및 유지보수엔진스Nginx를 사용하여 액세스 빈도, 다운로드 속도 및 동시 연결 수를 제한하는 방법

1. 액세스 빈도, 동시 연결 및 다운로드 속도를 제한하는 데 사용되는 모듈 및 지침 개요

  • ngx_http_limit_req_module: Leaky Bucket 알고리즘을 사용하여 단위 시간당 요청 수, 즉 속도 제한을 제한하는 데 사용됩니다. "leaky bucket"

  • ngx_http_limit_conn_module: 동시에 연결 수, 즉 동시성 제한을 제한하는 데 사용됩니다.

  • limit_rate 및limit_rate_after: 다운로드 속도 설정

leaky bucket 알고리즘(leaky bucket)

Nginx를 사용하여 액세스 빈도, 다운로드 속도 및 동시 연결 수를 제한하는 방법

알고리즘 아이디어는 다음과 같습니다.

  • 물(요청)을 위에서 물통에 붓고 물통 바닥에서 흘러나옵니다(처리)

  • 너무 늦게 흘러나오는 물을 저장합니다. 물통(버퍼)에 담아 일정한 속도로 흘러나옵니다.

  • 물통이 가득 차면 물이 넘칩니다(버리세요).

  • 이 알고리즘의 핵심은 요청을 캐싱하고 일정한 속도로 처리하며 중복된 요청을 직접 삭제하는 것입니다.

  • nginx 요청 속도별 속도 제한 모듈은 누출 버킷 알고리즘을 사용하여 요청의 실시간 처리 속도가 설정된 임계값을 초과하지 않도록 강제로 보장할 수 있습니다

2. URL 액세스 요청 빈도를 제한합니다.

http{ 
    ... 
 
  limit_req_zone $binary_remote_addr zone=one:30m rate=20r/s; 
  limit_req_zone $binary_remote_addr $uri zone=two:30m rate=20r/s; 
  limit_req_zone $binary_remote_addr $request_uri zone=three:30m rate=20r/s; 
  limit_req_status 444; 
    ... 
 
  server{ 
      ... 
 
    limit_req zone=two burst=15 nodelay; 
    ... 
 
  } 
}

설명 :

limit_req_zone $binary_remote_addr zone=one:30m rate=20r/s;

  • $binary_remote_addr은 동일한 클라이언트 IP 주소를 다른 URL로 제한하는 것입니다

  • zone: zone 이름 1이 세션30을 저장합니다. 엠

  • rate : Every 초당 요청 수

limit_req_zone $binary_remote_addr $uri zone=two:30m rate=20r/s;

  • $binary_remote_addr $uri는 동일한 클라이언트 IP 주소를 same url

  • zone: zone 이름 2 Store session30m

  • rate: 초당 조건

limit_req_zone $binary_remote_addr $ Request_uri Zone = Three: 30m Rate = 20R/s의 동일한 클라이언트 IP 주소를 제한합니다. 동일 URL

  • zone: zone 이름 two 매장 세션 30m

  • rate: 초당 요청 수

  • limit_req zone=twoburst=15 nodelay;

zone 참조 영역은 2,

  • burst 크기가 15인 버퍼를 설정합니다. 요청(버스트)이 많이 올 때, 액세스가 위 제한을 초과하면 먼저 버퍼에 배치될 수 있습니다.

  • nodelay는 일반적으로 버스트와 함께 사용됩니다. nodelay를 설정하면 액세스 빈도를 초과하고 버퍼가 가득 차면 503이 직접 반환됩니다. 설정하면 모든 대규모 요청이 대기열에 추가됩니다. 동시 연결 수에 따라

  • 사례 1:

    http { 
      ... 
     
      limit_conn_log_level error; 
      limit_conn_zone $binary_remote_addr zone=addr:10m; 
      limit_conn_status 503; 
     
      ... 
     
      server { 
     
        ... 
     
        location /download/ { 
          limit_conn addr 1; 单个客户端ip限制为1 
        } 
        ... 
     
    }

    사례 2:
  • http{ 
    limit_conn_zone $binary_remote_addr zone=perip:10m; 
    limit_conn_zone $server_name zone=perserver:10m; 
     
      server { 
        ... 
        limit_conn perip 10;  #单个客户端ip与服务器的连接数 
        limit_conn perserver 100; #限制与服务器的总连接数 
      } 
    }

4 다운로드 속도 제한

location /download { 
  limit_rate 128k; 
 } 
 
#如果想设置用户下载文件的前10m大小时不限速,大于10m后再以128kb/s限速可以增加以下配内容 
 
location /download { 
    limit_rate_after 10m; 
    limit_rate 128k; 
 }
.

위 내용은 Nginx를 사용하여 액세스 빈도, 다운로드 속도 및 동시 연결 수를 제한하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
궁극적 인 대결 : Nginx vs. Apache궁극적 인 대결 : Nginx vs. ApacheApr 18, 2025 am 12:02 AM

Nginx는 높은 동시 요청을 처리하는 데 적합한 반면 Apache는 복잡한 구성 및 기능 확장이 필요한 시나리오에 적합합니다. 1.NGINX는 이벤트 중심의 비 블로킹 아키텍처를 채택하며, 대결 환경에 적합합니다. 2. Apache는 프로세스 또는 스레드 모델을 채택하여 복잡한 구성 요구에 적합한 풍부한 모듈 생태계를 제공합니다.

NGINX의 행동 : 예제 및 실제 응용 프로그램NGINX의 행동 : 예제 및 실제 응용 프로그램Apr 17, 2025 am 12:18 AM

Nginx는 웹 사이트 성능, 보안 및 확장 성을 향상시키는 데 사용될 수 있습니다. 1) 리버스 프록시 및로드 밸런서로서 Nginx는 백엔드 서비스를 최적화하고 트래픽을 공유 할 수 있습니다. 2) 이벤트 중심 및 비동기 아키텍처를 통해 Nginx는 높은 동시 연결을 효율적으로 처리합니다. 3) 구성 파일을 사용하면 정적 파일 서비스 및로드 밸런싱과 같은 규칙을 유연하게 정의 할 수 있습니다. 4) 최적화 제안에는 GZIP 압축 활성화, 캐시 사용 및 작업자 프로세스 조정이 포함됩니다.

NGINX 장치 : 다양한 프로그래밍 언어를 지원합니다NGINX 장치 : 다양한 프로그래밍 언어를 지원합니다Apr 16, 2025 am 12:15 AM

NginxUnit은 여러 프로그래밍 언어를 지원하며 모듈 식 디자인을 통해 구현됩니다. 1. 언어 모듈로드 : 구성 파일에 따라 해당 모듈을로드합니다. 2. 응용 프로그램 시작 : 호출 언어가 실행될 때 응용 프로그램 코드를 실행합니다. 3. 요청 처리 : 응용 프로그램 인스턴스로 요청을 전달하십시오. 4. 응답 반환 : 처리 된 응답을 클라이언트에 반환합니다.

nginx와 apache 사이의 선택 : 필요에 맞는 적합nginx와 apache 사이의 선택 : 필요에 맞는 적합Apr 15, 2025 am 12:04 AM

Nginx와 Apache는 고유 한 장점과 단점이 있으며 다른 시나리오에 적합합니다. 1.NGINX는 높은 동시성 및 낮은 자원 소비 시나리오에 적합합니다. 2. Apache는 복잡한 구성 및 풍부한 모듈이 필요한 시나리오에 적합합니다. 핵심 기능, 성능 차이 및 모범 사례를 비교하면 요구에 가장 적합한 서버 소프트웨어를 선택할 수 있습니다.

nginx를 시작하는 방법nginx를 시작하는 방법Apr 14, 2025 pm 01:06 PM

질문 : nginx를 시작하는 방법? 답변 : nginx 스타트 업 설치 nginx verification nginx is nginx 시작 다른 시작 옵션을 자동으로 시작합니다.

nginx가 시작되었는지 확인하는 방법nginx가 시작되었는지 확인하는 방법Apr 14, 2025 pm 01:03 PM

nginx가 시작되었는지 확인하는 방법 : 1. 명령 줄을 사용하십시오 : SystemCTL 상태 nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. 포트 80이 열려 있는지 확인하십시오. 3. 시스템 로그에서 nginx 시작 메시지를 확인하십시오. 4. Nagios, Zabbix 및 Icinga와 같은 타사 도구를 사용하십시오.

nginx를 닫는 방법nginx를 닫는 방법Apr 14, 2025 pm 01:00 PM

Nginx 서비스를 종료하려면 다음 단계를 따르려면 다음 단계를 결정합니다. Red Hat/Centos (SystemCTL 상태 NGINX) 또는 Debian/Ubuntu (서비스 NGINX 상태) 서비스 중지 : Red Hat/Centos (SystemCTL STOP NGINX) 또는 DEBIAN/UBUNTU (서비스 NGINX STOP) DIA AUTAL STARTUP (옵션) : RED HAT/CENTOS (SystemCTLED) 또는 DEBIAN/UBUNT (SystemCTLED). (Syst

Windows에서 nginx를 구성하는 방법Windows에서 nginx를 구성하는 방법Apr 14, 2025 pm 12:57 PM

Windows에서 Nginx를 구성하는 방법은 무엇입니까? nginx를 설치하고 가상 호스트 구성을 만듭니다. 기본 구성 파일을 수정하고 가상 호스트 구성을 포함하십시오. 시작 또는 새로 고침 Nginx. 구성을 테스트하고 웹 사이트를보십시오. SSL을 선택적으로 활성화하고 SSL 인증서를 구성하십시오. 포트 80 및 443 트래픽을 허용하도록 방화벽을 선택적으로 설정하십시오.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.