Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So implementieren Sie die Nginx-Geschwindigkeitsbegrenzungskonfiguration

So implementieren Sie die Nginx-Geschwindigkeitsbegrenzungskonfiguration

王林
王林Original
2023-11-08 21:22:551350Durchsuche

So implementieren Sie die Nginx-Geschwindigkeitsbegrenzungskonfiguration

Für die Implementierung der Nginx-Geschwindigkeitsbegrenzungskonfiguration sind bestimmte Codebeispiele erforderlich.

Nginx muss als Hochleistungs-Webserver und Reverse-Proxy-Server in praktischen Anwendungen häufig die Geschwindigkeit bestimmter Schnittstellen oder Ressourcen steuern und Fairness des Systems. Im Folgenden wird erläutert, wie die Geschwindigkeitsbegrenzungskontrolle über die Nginx-Konfigurationsdatei implementiert wird, und es werden spezifische Codebeispiele angehängt.

  1. Definieren des Geschwindigkeitsbegrenzungsbereichs in der Konfigurationsdatei
    Zunächst müssen Sie einen Geschwindigkeitsbegrenzungsbereich in der Nginx-Konfigurationsdatei definieren, um Informationen zu Geschwindigkeitsbegrenzungen zu speichern und zu verwalten. Öffnen Sie die Nginx-Konfigurationsdatei (normalerweise nginx.conf oder sites-available/default) und fügen Sie die folgende Konfiguration im http-Modul hinzu:
http {
  ...
  limit_req_zone $binary_remote_addr zone=rate_limit:10m rate=10r/s;
  ...
}

In der obigen Konfiguration wird limit_req_zone verwendet, um eine Geschwindigkeit zu definieren limit Area, wobei $binary_remote_addr eine Geschwindigkeitsbegrenzung basierend auf der Client-IP-Adresse bedeutet. Der Parameter zone gibt den Namen des Geschwindigkeitsbegrenzungsbereichs als rate_limit und 10m bedeutet, dass die Speichergröße des ratenbegrenzten Bereichs 10 MB beträgt und der Parameter <code>rate angibt, dass die maximal zulässige Anzahl von Anforderungen 10 pro Sekunde beträgt. limit_req_zone用于定义一个限速区域,其中$binary_remote_addr表示根据客户端IP地址进行限速,zone参数指定了限速区域的名称为rate_limit,10m表示限速区域的内存大小为10MB,rate参数指定了允许的最大请求数量是每秒10个。

  1. 配置文件中应用限速
    接下来,在配置文件中需要对具体的接口或资源进行限速控制。打开配置文件,在server块内添加以下配置:
server {
  ...
  location /api/limited {
    limit_req zone=rate_limit burst=20 nodelay;
    ...
  }
  ...
}

在以上配置中,location指令表示限速控制应用于路径为/api/limited的URL。limit_req指令用于设置限速规则,其中zone参数指定了使用前面定义的限速区域rate_limit,burst参数表示在超过限速后允许的最大请求数量,nodelay

    Geschwindigkeitsbegrenzung in der Konfigurationsdatei anwenden
      Als nächstes müssen Sie die Geschwindigkeitsbegrenzung für bestimmte Schnittstellen oder Ressourcen in der Konfigurationsdatei steuern. Öffnen Sie die Konfigurationsdatei und fügen Sie die folgende Konfiguration im Serverblock hinzu:

    1. sudo service nginx reload
    2. In der obigen Konfiguration gibt die location-Direktive an, dass die Ratenbegrenzungskontrolle auf die URL mit dem Pfad /api angewendet werden soll /beschränkt. Der Befehl limit_req wird zum Festlegen von Geschwindigkeitsbegrenzungsregeln verwendet. Der Parameter zone gibt die Verwendung der zuvor definierten Geschwindigkeitsbegrenzungszone rate_limit an Gibt an, dass die Geschwindigkeitsbegrenzung überschritten wird. Die maximal zulässige Anzahl von Anforderungen nach der Geschwindigkeitsbegrenzung. Der Parameter nodelay gibt an, ob bei Anforderungen, die die Geschwindigkeitsbegrenzung überschreiten, sofort ein Fehler zurückgegeben werden soll.

    Nginx-Konfiguration neu laden und testen

    Speichern Sie nach Abschluss der obigen Konfiguration die Konfigurationsdatei und laden Sie die Nginx-Konfiguration neu, damit die Einstellungen wirksam werden. Sie können den folgenden Befehl verwenden, um die Nginx-Konfiguration neu zu laden:

    ab -n 1000 -c 100 http://your-domain.com/api/limited

    Anschließend können Sie Tools verwenden, um gleichzeitige Anforderungen zu testen, zu simulieren und die Auswirkung der Geschwindigkeitsbegrenzung zu überprüfen. Sie können zum Testen Tools wie ab (ApacheBench) oder wrk verwenden, zum Beispiel: 🎜rrreee🎜Der obige Befehl bedeutet, dass 1000 gleichzeitige Anforderungen gesendet werden, jedes Mal 100 gleichzeitige Anforderungen, und die Zugriffs-URL lautet http://your-domain.com /api/limited . Durch Anzeigen der zurückgegebenen Testergebnisse können Sie die Richtigkeit der Geschwindigkeitsbegrenzungskonfiguration überprüfen. 🎜🎜Die oben genannten Schritte sind die Schritte zur Implementierung der Geschwindigkeitsbegrenzungskonfiguration über Nginx. Durch die Definition von Geschwindigkeitsbegrenzungsbereichen und die Anwendung von Geschwindigkeitsbegrenzungsregeln können Sie die Zugriffsgeschwindigkeit von Schnittstellen oder Ressourcen effektiv steuern und die Stabilität und Fairness des Systems aufrechterhalten. Ich hoffe, der obige Inhalt ist hilfreich für Sie! 🎜

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

Stellungnahme:
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