Inhaltsverzeichnis
Ausgehend vom Geschäftsszenario
Was ist eine Geschwindigkeitsbegrenzung?
Warum Geschwindigkeitsbegrenzung?
Welche Konfigurationen gibt es in der Yaml-Datei von Nginx Ingress?
Heim Betrieb und Instandhaltung Nginx So konfigurieren Sie das Nginx-Eingangsgeschwindigkeitslimit

So konfigurieren Sie das Nginx-Eingangsgeschwindigkeitslimit

May 12, 2023 pm 04:52 PM
nginx ingress

Ausgehend vom Geschäftsszenario

Während des Geschäftsentwicklungsprozesses haben wir eine Anforderung: Der über den Dateibrowser bereitgestellte Download-Dienst muss geschwindigkeitsbegrenzt sein. Wenn Benutzer beispielsweise Dateien über den Dateibrowser herunterladen, müssen sie die Downloadrate jedes Benutzers begrenzen. Über diese Anforderung hinaus kann auch die Downloadrate für bestimmte Benutzer begrenzt werden.

Um diese Geschäftsanforderung in Kombination mit unserem aktuellen Technologie-Stack (k8s + Nginx-Ingress) zu erreichen, kann dies durch die Konfiguration der entsprechenden Nginx-Parameter erreicht werden.

Was ist eine Geschwindigkeitsbegrenzung?

Geschwindigkeitsbegrenzung ist, wie der Name schon sagt, eine Geschwindigkeitsbegrenzung.

Die Rate hier kann sein:

  • Die Häufigkeit, mit der ein einzelner Benutzer innerhalb der Zeiteinheit auf Ressourcen zugreift,

  • Es kann auch die Häufigkeit sein, mit der eine einzelne IP innerhalb der Zeiteinheit auf die Ressource zugreift,

  • Es kann auch die Einheitszeit sein. Die Übertragungsrate der angegebenen Verbindung.

Normalerweise besteht das letztere Geschäftsszenario bei Download-Geschwindigkeitsbegrenzungen

Warum Geschwindigkeitsbegrenzung?

Das Wesentliche bei Geschwindigkeitsbegrenzungen ist die Gewährleistung von Fairness.

Bei begrenzten Bandbreitenressourcen versuchen Sie unser Bestes, um sicherzustellen, dass jedem Benutzer angemessenerweise ausreichend Bandbreitenwert zugewiesen werden kann. Außerdem kann es durch Geschwindigkeitsbegrenzung mehr Benutzer bedienen, wenn die Bandbreitenressourcen begrenzt sind.

Darüber hinaus kann eine Geschwindigkeitsbegrenzung auch die Auswirkungen von Distributed-Denial-of-Service-Angriffen (DDOS) erheblich abmildern.

Welche Konfigurationen gibt es in der Yaml-Datei von Nginx Ingress?

Die Geschwindigkeitsbegrenzungskonfiguration von Nginx Ingress finden Sie grundsätzlich in der Annotation nginx.ingress.kubernetes.io von Ingress.

Im Folgenden interpretieren wir die Anmerkungen zum Tempolimit einzeln:

  • nginx.ingress.kubernetes.io/limit-connections: Die Anzahl der gleichzeitigen Verbindungen, die hergestellt werden können gleichzeitig eine einzelne IP-Adresse. Wenn die Anzahl gleichzeitiger Verbindungen überschritten wird, wird ein 503-Fehler zurückgegeben. 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:突发请求大小的系数,主要用来定义连接的队列长度,默认是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不被限速,支持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: Begrenzen Sie die Anzahl der Anfragen pro Sekunde für eine einzelne IP (Anfrage pro Sekunde begrenzen). Wenn der Grenzwert überschritten wird, wird ein 503-Fehler zurückgegeben. Es ist zu beachten, dass ein 503-Fehler nicht sofort auftritt, wenn der durch die Konfiguration festgelegte Wert überschritten wird, der das Vorhandensein der Anzahl von Burst-Anfragen innerhalb eines bestimmten Zeitbereichs zulässt (Anzahl der Burst-Anfragen = limit-rps * limit-burst). -Multiplikator). Wann erscheint also 503? Dies beginnt mit dem aktuellen limitierenden Modell von Nginx. Das aktuelle Begrenzungsmodell von Nginx ist eine Warteschlange (siehe das Warteschlangenmodell des Thread-Pools). Die maximale Anzahl von Verbindungen für die aktuelle Begrenzung = Warteschlangenverarbeitungskapazität + Warteschlangenlänge, d. h. maximale Verbindungen pro Sekunde = Begrenzung. rps + limit-rps* limit-burst-multiplikator.

nginx.ingress.kubernetes.io/limit-rpm: Wie limit-rps, aber limit-rpm hat eine höhere Priorität als limit-rps, was bedeutet, dass limit-rpm gilt Stellen Sie gleichzeitig U/min und Limit-U/s ein, abhängig von Limit-U/min. Wenn jedoch auch Limit-Verbindungen festgelegt sind, haben Limit-Verbindungen die höchste Priorität.

nginx.ingress.kubernetes.io/limit-burst-multiplier: Koeffizient der Burst-Anforderungsgröße, der hauptsächlich zum Definieren der Warteschlangenlänge der Verbindung verwendet wird. Der Standardwert ist 5🎜🎜🎜🎜 nginx.ingress.kubernetes.io/limit-rate-after: Das Ratenlimit (Limit-Rate) wird ausgeführt, nachdem der Datenverkehr das Limit überschreitet, die Einheit ist KB🎜🎜🎜🎜nginx .ingress.kubernetes.io/ limit-rate: Der Geschwindigkeitsgrenzwert einer einzelnen Verbindung pro Sekunde, in KB. 🎜🎜🎜🎜nginx.ingress.io/limit-whitelist: IPs in der Whitelist werden nicht durch Kommas getrennt unterstützt . 🎜🎜... 🎜🎜🎜 🎜Die Voraussetzung für das Inkrafttreten von limit-rate-after und limit-rate ist nginx.ingress.kubernetes.io/proxy-buffering: „on“🎜🎜🎜🎜Die oben genannten IPs Müssen von SLB unterschieden werden Oder die echte Benutzer-IP, erhalten Sie die echte Benutzer-IP 🎜🎜🎜🎜4 Lösungen für Geschäftsanforderungen 🎜🎜Nachdem wir diese Wissenspunkte geklärt haben, können wir sie einfach zu unserem Geschäft selbst hinzufügen Business-Ingress-Konfigurationsdatei Fügen Sie einfach die folgende Konfiguration hinzu: 🎜
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:
    ...
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie das Nginx-Eingangsgeschwindigkeitslimit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So überprüfen Sie, ob Nginx gestartet wird So überprüfen Sie, ob Nginx gestartet wird Apr 14, 2025 pm 01:03 PM

So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

Wie kann ich überprüfen, ob Nginx begonnen wird? Wie kann ich überprüfen, ob Nginx begonnen wird? Apr 14, 2025 pm 12:48 PM

Verwenden Sie unter Linux den folgenden Befehl, um zu überprüfen, ob Nginx gestartet wird: SystemCTL -Status Nginx Richter basierend auf der Befehlsausgabe: Wenn "aktiv: aktiv (lief) angezeigt wird, wird Nginx gestartet. Wenn "Active: Inactive (Dead)" angezeigt wird, wird Nginx gestoppt.

So starten Sie Nginx unter Linux So starten Sie Nginx unter Linux Apr 14, 2025 pm 12:51 PM

Schritte zum Starten von Nginx unter Linux: Überprüfen Sie, ob Nginx installiert ist. Verwenden Sie SystemCTL Start Nginx, um den Nginx -Dienst zu starten. Verwenden Sie SystemCTL aktivieren NGINX, um das automatische Start von NGINX beim Systemstart zu aktivieren. Verwenden Sie den SystemCTL -Status NGINX, um zu überprüfen, ob das Startup erfolgreich ist. Besuchen Sie http: // localhost in einem Webbrowser, um die Standard -Begrüßungsseite anzuzeigen.

So konfigurieren Sie Nginx in Windows So konfigurieren Sie Nginx in Windows Apr 14, 2025 pm 12:57 PM

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

So lösen Sie das Problem der Nginx Cross-Domain So lösen Sie das Problem der Nginx Cross-Domain Apr 14, 2025 am 10:15 AM

Es gibt zwei Möglichkeiten, das Problem mit dem Cross-Domain-Problem mit dem NGINX-Problem zu lösen: Änderungen der Cross-Domänen-Antwort-Header: Fügen Sie Anweisungen hinzu, um Cross-Domain-Anforderungen zu ermöglichen, zulässigen Methoden und Header anzugeben und die Cache-Zeit festzulegen. Verwenden Sie das CORS-Modul: Aktivieren Sie Module und konfigurieren Sie die CORS-Regeln, um Cross-Domain-Anforderungen, Methoden, Header und Cache-Zeit zu ermöglichen.

So überprüfen Sie den laufenden Status von Nginx So überprüfen Sie den laufenden Status von Nginx Apr 14, 2025 am 11:48 AM

Die Methoden zum Anzeigen des laufenden Status von Nginx sind: Verwenden Sie den Befehl ps, um den Prozessstatus anzuzeigen; Zeigen Sie die nginx -Konfigurationsdatei /etc/nginx/nginx.conf an; Verwenden Sie das Nginx -Statusmodul, um den Statusendpunkt zu aktivieren. Verwenden Sie Überwachungstools wie Prometheus, Zabbix oder Nagios.

So starten Sie den Nginx -Server So starten Sie den Nginx -Server Apr 14, 2025 pm 12:27 PM

Das Starten eines Nginx-Servers erfordert unterschiedliche Schritte gemäß verschiedenen Betriebssystemen: Linux/UNIX-System: Installieren Sie das NGINX-Paket (z. B. mit APT-Get oder Yum). Verwenden Sie SystemCTL, um einen Nginx -Dienst zu starten (z. B. sudo systemctl start nginx). Windows -System: Laden Sie Windows -Binärdateien herunter und installieren Sie sie. Starten Sie Nginx mit der ausführbaren Datei nginx.exe (z. B. nginx.exe -c conf \ nginx.conf). Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie auf die Server -IP zugreifen

So lösen Sie Nginx403 -Fehler So lösen Sie Nginx403 -Fehler Apr 14, 2025 pm 12:54 PM

Der Server verfügt nicht über die Berechtigung, auf die angeforderte Ressource zuzugreifen, was zu einem NGINX 403 -Fehler führt. Zu den Lösungen gehören: Überprüfung der Dateiberechtigungen. Überprüfen Sie die Konfiguration .htaccess. Überprüfen Sie die Nginx -Konfiguration. Konfigurieren Sie Selinux -Berechtigungen. Überprüfen Sie die Firewall -Regeln. Fehlerbehebung bei anderen Ursachen wie Browserproblemen, Serverausfällen oder anderen möglichen Fehlern.

See all articles