私は Nginx 構成ファイルに次の構文を使用しています/etc/nginx/nginx.conf
:
user www-data;
worker_processes 2;
pid /run/nginx.pid;
worker_rlimit_nofile 100000;
events {
worker_connections 2048;
multi_accept on;
}
http {
##
# Basic Settings
##
client_header_buffer_size 2k;
large_client_header_buffers 2 1k;
client_body_buffer_size 10M;
client_max_body_size 10M;
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=50r/s;
server {
limit_conn conn_limit_per_ip 10;
limit_req zone=req_limit_per_ip burst=10 nodelay;
}
sendfile on;
tcp_nopush on;
tcp_nodelay on;
types_hash_max_size 2048;
server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
私のウェブサイトのサーバー ブロックは以下に含まれています:include /etc/nginx/sites-enabled/*;
上記のように定義されたサーバーは、DDOS 保護が期待どおりに機能するように、my 内のブロックhttp
に取って代わりますか?server{}
sites-enabled/*
答え1
実は、ドスそしてDDOS攻撃。DDOS の追加の D は分散型を意味します。
シンプルなドス攻撃に対しては、セットアップを使用できます。ただし、許可または想定される使用例と、許可または想定されない使用例の違いは、アプリケーションまたは Web サイトによって異なります。一般的なレシピは存在しません。
和らげるDDOSあなたのセットアップを攻撃します役に立たないこのような攻撃は、さまざまな IP アドレスから実行されます。通常、DDOS 攻撃は、ネットワーク レベルで、非常に高い帯域幅で軽減する必要があります。
答え2
あなたが言っているのはngx_http_limit_conn_モジュールそしてngx_http_limit_req_モジュール。
構文: limit_conn ゾーン番号;
デフォルト: —
コンテキスト: http、server、location
これらのディレクティブは、現在のレベルで limit_conn ディレクティブが定義されていない場合にのみ、前の構成レベルから継承されます。
したがって、ブロックに継承させるには、ブロックlimit_conn
内の 1 レベル上に配置する必要があります。http
server
構文: limit_req zone=name [burst=number] [nodelay | delay=number];
デフォルト: —
コンテキスト: http、server、location
これらのディレクティブは、現在のレベルで limit_req ディレクティブが定義されていない場合にのみ、前の構成レベルから継承されます。
ブロックに継承されるように、ブロックlimit_req
内の 1 レベル上に配置する場合も同様です。http
server