我在 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/*;
如上所定义的服务器http
是否会取代server{}
我的块,sites-enabled/*
以便 DDOS 保护能够按预期工作?
答案1
事实上,操作系统和分布式拒绝服务攻击。DDOS 中的附加字母 D 代表分布式。
对于简单操作系统攻击您的设置可能会被利用。然而,这实际上取决于您的应用程序或网站,允许或预期的用例与不允许或不预期的用例之间的差异可能存在。没有通用的秘诀。
减轻分布式拒绝服务攻击你的设置无济于事。此类攻击会从许多不同的 IP 地址发起。通常,DDOS 攻击必须在网络级别上缓解,并且需要非常高的带宽。
答案2
我猜你说的是ngx_http_limit_conn_module和ngx_http_limit_req_module。
语法:limit_conn 区域号;
默认值:—
上下文:http、server、location
当且仅当当前级别上没有定义 limit_conn 指令时,这些指令才会从上一个配置级别继承。
因此,limit_conn
您需要将其放置到块的上一级,http
以使其继承到server
块中。
语法:limit_req zone=name [burst=number] [nodelay | delay=number];
默认值:—
上下文:http、server、location
当且仅当当前级别上没有定义 limit_req 指令时,这些指令才会从上一个配置级别继承。
同样,将limit_req
其放置到块的上一级http
,使其继承到server
块中。