Heim > Betrieb und Instandhaltung > Nginx > So verhindern Sie DDoS-Angriffe in Nginx

So verhindern Sie DDoS-Angriffe in Nginx

(*-*)浩
Freigeben: 2019-06-18 10:57:03
Original
3817 Leute haben es durchsucht

Die Verteidigung gegen DDOS ist ein systematisches Projekt. Die Verteidigungskosten sind hoch und es gibt viele Engpässe. Das Merkmal von DDOS ist, dass es verteilt ist und auf Bandbreiten- und Dienstangriffe abzielt, d . Für Anwendungsangriffe der Schicht sieben können wir noch einige Konfigurationen vornehmen, um uns dagegen zu verteidigen.

So verhindern Sie DDoS-Angriffe in Nginx

Zum Beispiel ist das Frontend Nginx, das zur Verteidigung hauptsächlich die Module http_limit_conn und http_limit_req von nginx verwendet. ngx_http_limit_conn_module kann die Anzahl der Verbindungen einer einzelnen IP begrenzen. Durch die Begrenzung der Anzahl der Verbindungen und Anforderungen können CC-Angriffe relativ effektiv abgewehrt werden.

Das Folgende ist die Konfigurationsmethode:

Begrenzen Sie die Anzahl der Anfragen pro Sekunde
Das Modul ngx_http_limit_req_module verwendet das Leaky Bucket-Prinzip zur Begrenzung der Zeiteinheit. Sobald die Anzahl der Anfragen pro Zeiteinheit das Limit überschreitet, wird ein 503-Fehler zurückgegeben. Die Konfiguration muss an zwei Stellen festgelegt werden:

Definieren Sie Triggerbedingungen im http-Abschnitt von nginx.conf. Es können mehrere Bedingungen vorhanden sein.
Definieren Sie an Ort und Stelle die Aktionen, die von nginx ausgeführt werden sollen, wenn die Triggerbedingungen vorliegen erfüllt
Zum Beispiel:

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; //触发条件,所有访问ip 限制每秒10个请求    ...
    server {        ...
        location  ~ \.php$ {
            limit_req zone=one burst=5 nodelay;   //执行的动作,通过zone名字对应
               }
           }
     }
Nach dem Login kopieren

Parameterbeschreibung:

$binary_remote_addr  二进制远程地址
zone=one:10m    定义zone名字叫one,并为这个zone分配10M内存,用来存储会话(二进制远程地址),1m内存可以保存16000会话
rate=10r/s;     限制频率为每秒10个请求
burst=5         允许超过频率限制的请求数不多于5个,假设1、2、3、4秒请求为每秒9个,那么第5秒内请求15个是允许的,反之,如果第一秒内请求15个,会将5个请求放到第二秒,第二秒内超过10的请求直接503,类似多秒内平均速率限制。
nodelay         超过的请求不被延迟处理,设置后15个请求在1秒内处理。
Nach dem Login kopieren

Begrenzen Sie die Anzahl der IP-Verbindungen
Die Konfigurationsmethode und die Parameter von ngx_http_limit_conn_module sind die gleichen wie das Modul http_limit_req ist sehr ähnlich, mit weniger Parametern und viel einfacher

http {
    limit_conn_zone $binary_remote_addr zone=addr:10m; //触发条件    ...
    server {        ...
        location /download/ {
            limit_conn addr 1;    // 限制同一时间内1个连接,超出的连接返回503
                }
           }
     }
Nach dem Login kopieren

Weitere technische Artikel zu Nginx finden Sie im Nginx-Tutorial Kolumne zum Lernen!

Das obige ist der detaillierte Inhalt vonSo verhindern Sie DDoS-Angriffe in Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage