Mở file cấu hình chính:
sudo nano /etc/nginx/nginx.conf
Thêm dòng sau trong khối http { ... }
:
server_tokens off;
Sau đó reload:
sudo systemctl reload nginx
Trong từng server { ... }
, thêm:
if ($request_method !~ ^(GET|POST|HEAD)$) {
return 444;
}
Trả về mã lỗi 444 (Nginx drop kết nối mà không trả lời).
client_max_body_size 10M;
Đặt trong khối server { ... }
hoặc http { ... }
.
Trong http
block (/etc/nginx/nginx.conf
), thêm:
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
Trong server
hoặc location /
, thêm:
limit_req zone=one burst=20 nodelay;
→ Cho phép tối đa 10 request/giây, vượt quá sẽ bị chặn.
sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/sites-available/default
sudo systemctl reload nginx
Nếu chưa được bật sẵn:
sudo systemctl enable nginx
Tạo file /usr/local/bin/nginx-reload-safe.sh
:
sudo nano /usr/local/bin/nginx-reload-safe.sh
Thêm nội dung:
#!/bin/bash
if nginx -t; then
systemctl reload nginx
echo "Nginx reloaded successfully."
else
echo "Nginx configuration test failed!"
fi
Cấp quyền:
sudo chmod +x /usr/local/bin/nginx-reload-safe.sh
Dùng lệnh này mỗi khi chỉnh sửa file cấu hình:
sudo nginx-reload-safe.sh
curl -I http://yourdomain.com
để test headers.