비즈니스 시나리오부터 시작
비즈니스 개발 과정에서 요구 사항이 있습니다: 파일 브라우저를 통해 제공되는 다운로드 서비스는 속도가 제한되어야 합니다. 예를 들어 사용자가 파일 브라우저를 통해 파일을 다운로드하는 경우 각 사용자의 다운로드 속도를 제한해야 합니다. 이 요구 사항을 확장하면 특정 사용자의 다운로드 속도도 제한될 수 있습니다.
현재 기술 스택(k8s + nginx 수신)과 결합하여 이 비즈니스 요구 사항을 달성하려면 해당 nginx 매개 변수를 구성하면 됩니다.
속도 제한이란 무엇인가요?
속도 제한은 이름에서 알 수 있듯이 속도 제한입니다.
여기의 비율은 다음과 같습니다.
단일 사용자가 단위 시간에 리소스에 액세스하는 빈도,
단일 IP가 단위 시간에 리소스에 액세스하는 빈도,
할 수도 있습니다. 또한 단위 시간은 지정된 연결의 전송 속도입니다.
보통 후자의 비즈니스 시나리오에는 다운로드 속도 제한이 존재합니다.
왜 속도 제한이 있나요?
속도 제한의 본질은 공정성을 보장하는 것입니다.
제한된 대역폭 리소스의 경우 각 사용자에게 충분한 대역폭 값이 합리적으로 할당될 수 있도록 최선을 다하십시오. 또한 대역폭 리소스가 제한되어 있는 경우 속도 제한을 통해 더 많은 사용자에게 서비스를 제공할 수 있습니다.
또한 속도 제한은 DDOS(분산 서비스 거부) 공격의 영향을 크게 완화할 수도 있습니다.
nginx 수신의 yaml 파일 구성은 무엇입니까?
Nginx 수신의 속도 제한 구성은 기본적으로 수신의 nginx.ingress.kubernetes.io 주석에서 찾을 수 있습니다.
아래에서는 속도 제한과 관련된 주석을 하나씩 해석하겠습니다.
nginx.ingress.kubernetes.io/limit-connections
: 다음에서 만들 수 있는 동시 연결 수 동시에 단일 IP 주소. 동시 연결 수를 초과하면 503 오류가 반환됩니다.nginx.ingress.kubernetes.io/limit-connections
:单个IP地址可以同时并发连接的个数。如果超过连接并发数,则返回503错误。nginx.ingress.kubernetes.io/limit-rps
:限制单个IP每秒钟的请求数(limit request per second)。超出限制,返回503错误。需要注意的是,并不是立刻超出该配置设定的值就马上出现503错误,nginx允许在一定时间范围内的突发请求数的存在(突发请求数 = limit-rps * limit-burst-multiplier)。那么什么时候会出现503呢?这就要从nginx的限流模型展开了。nginx的限流模型就是一个队列(参考线程池的队列模型模型),限流的max连接数=队列处理的能力+队列长度,即max-connections-per-second=limit-rps+limit-rps*limit-burst-multiplier。nginx.ingress.kubernetes.io/limit-rpm
:同limit-rps,不过limit-rpm的优先级高于limit-rps,也就是说当同时设置了limit-rpm和limit-rps,以limit-rpm为准。不过当limit-connections也设置了,那么limit-connections的优先级最高。nginx.ingress.kubernetes.io/limit-burst-multiplier
:突发请求大小的系数,主要用来定义连接的队列长度,默认是5nginx.ingress.kubernetes.io/limit-rate-after
:超过多少流量后执行限速(limit-rate),单位是KBnginx.ingress.kubernetes.io/limit-rate
:单个连接每秒的限速值,单位是KB。nginx.ingress.kubernetes.io/limit-whitelist
:设定IP白名单,在该白名单内的IP不被限速,支持CIDR,多个IP可用逗号隔开。
注意
当limit-connections, limit-rps, limit-rpm同时设定时,优先级是limit-connections>limit-rpm>limit-rps
limit-rate-after和limit-rate生效的前提是
nginx.ingress.kubernetes.io/proxy-buffering: "on"
-
nginx.ingress.kubernetes.io/limit-rps
: 단일 IP에 대한 초당 요청 수를 제한합니다(초당 요청 제한). 제한을 초과하면 503 오류가 반환됩니다. nginx에서는 특정 시간 범위 내에서 버스트 요청 수(버스트 요청 수 = 제한-rps * 제한-버스트)가 존재하도록 허용합니다. -승수). 그렇다면 503은 언제 나타날까요? 이는 nginx의 현재 제한 모델로 시작됩니다. nginx의 현재 제한 모델은 대기열입니다(스레드 풀의 대기열 모델 참조). 현재 제한의 최대 연결 수 = 대기열 처리 능력 + 대기열 길이, 즉 초당 최대 연결 수 = 제한 - rps + 제한-rps* 제한-버스트-승수.
nginx.ingress.kubernetes.io/limit-rpm
:limit-rps와 동일하지만,limit-rpm은limit-rps보다 우선순위가 높습니다. 즉,limit-rpm이 rpm과limit-rps를 동시에 설정하고,limit-rpm에 따라 설정됩니다. 그러나 제한 연결도 설정된 경우 제한 연결의 우선순위가 가장 높습니다.
nginx.ingress.kubernetes.io/limit-burst-multiplier
: 버스트 요청 크기 계수. 주로 연결의 대기열 길이를 정의하는 데 사용되며 기본값은 5🎜🎜🎜🎜입니다. nginx.ingress.kubernetes.io/limit-rate-after
: 트래픽이 한도를 초과한 후 속도 제한(limit-rate)이 실행되며 단위는 KB🎜🎜🎜🎜 nginx.ingress.kubernetes.io/limit-rate
: 초당 단일 연결의 속도 제한 값(KB)입니다. 🎜🎜🎜🎜nginx.ingress.kubernetes.io/limit-whitelist
: 화이트리스트의 IP는 속도 제한이 없습니다. 여러 IP를 쉼표로 구분할 수 있습니다. . 🎜🎜🎜🎜참고🎜🎜🎜🎜limit-connections,limit-rps,limit-rpm을 동시에 설정하는 경우 우선순위는limit-connections>limit-rpm>limit-rps입니다. 🎜🎜🎜 🎜제한 비율 이후 및 제한 비율이 적용되기 위한 전제 조건은 nginx.ingress.kubernetes.io/proxy-buffering: "on"
🎜🎜🎜🎜위에 언급된 IP입니다. SLB와 구별해야 합니다. 아니면 실제 사용자 IP를 얻으세요🎜🎜🎜🎜4. 비즈니스 요구에 대한 솔루션🎜🎜이러한 지식 사항을 명확히 한 후 비즈니스 자체에 간단히 추가할 수 있습니다. 비즈니스 수신의 구성 파일 다음 구성을 추가하기만 하면 됩니다. 🎜apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: ... nginx.ingress.kubernetes.io/proxy-buffering: on nginx.ingress.kubernetes.io/limit-rate: 10 # 单位是KB name: xxx namespace: yyy spec: ingressClassName: nginx rules: ...
위 내용은 nginx 수신 속도 제한을 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

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

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

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

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

서버는 요청 된 리소스에 액세스 할 수있는 권한이 없으므로 Nginx 403 오류가 발생합니다. 솔루션에는 다음이 포함됩니다. 파일 권한 확인 권한을 확인하십시오. .htaccess 구성을 확인하십시오. nginx 구성을 확인하십시오. Selinux 권한을 구성하십시오. 방화벽 규칙을 확인하십시오. 브라우저 문제, 서버 장애 또는 기타 가능한 오류와 같은 다른 원인을 해결하십시오.

Linux에서 Nginx를 시작하는 단계 : Nginx가 설치되어 있는지 확인하십시오. systemctl start nginx를 사용하여 nginx 서비스를 시작하십시오. SystemCTL을 사용하여 NGINX를 사용하여 시스템 시작시 NGINX의 자동 시작을 활성화하십시오. SystemCTL 상태 nginx를 사용하여 시작이 성공했는지 확인하십시오. 기본 환영 페이지를 보려면 웹 브라우저의 http : // localhost를 방문하십시오.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

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

WebStorm Mac 버전
유용한 JavaScript 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
