Nginx 是一款开源的高性能 Web 服务器,同时支持反向代理和邮件代理功能,采用 BSD 许可协议分发。其核心优势在于内存占用少和高并发处理能力,能有效支撑大流量应用场景。本文将系统介绍Nginx服务器10项关键配置优化。
一、基础安全策略
1. 版本升级
# 查看当前版本(安全加固起点)
nginx -v
# 源码编译升级(推荐)
wget https://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3
# 精简模块示例(禁用非必要功能)
./configure --without-http_autoindex_module # 关闭目录列表
make && sudo make install
注意:
- 生产环境禁用--without-http_empty_gif_module等非核心模块
- 订阅Nginx安全通告
二、必须实施的5项防护配置
2. 隐藏服务器标识
# 在http块添加(全局生效)
http {
server_tokens off; # 禁止返回版本信息
}
3. 拦截恶意爬虫
# /etc/nginx/block_bots.conf
map $http_user_agent $is_bot {
default 0;
"~*bot" 1; # 匹配所有bot
"~*scan" 1; # 匹配扫描器
}
# server块引用
server {
if ($is_bot) { return 403; }
}
4. 限制HTTP方法
location / {
# 只允许GET/POST/HEAD方法
if ($request_method !~ ^(GET|POST|HEAD)$) {
return 405; # 更标准的Method Not Allowed
}
}
5. 防缓冲区溢出攻击
http {
client_body_buffer_size 16k;
client_header_buffer_size 1k;
client_max_body_size 10m; # 根据业务调整
}
6. 连接数限制
http {
# 每IP限制100连接
limit_conn_zone $binary_remote_addr zone=conn_per_ip:10m;
limit_conn conn_per_ip 100;
}
三、高级防护策略
7. 防盗链配置
location ~* \.(jpg|png|mp4)$ {
# 仅允许自家域名引用
valid_referers ~.yourdomain.com;
if ($invalid_referer) {
return 403;
}
}
8. 强制HTTPS加密
server {
listen 443 ssl;
# 禁用不安全协议
ssl_protocols TLSv1.2 TLSv1.3;
# 自动获取免费证书(推荐)
ssl_certificate /etc/letsencrypt/live/yourdomain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain/privkey.pem;
}
# HTTP重定向HTTPS
server {
listen 80;
return 301 https://$host$request_uri;
}
证书自动化:
sudo certbot --nginx 一键获取并配置Let's Encrypt证书
四、监控与维护
9. 关键日志分析
# 实时监控异常请求
tail -f /var/log/nginx/access.log | grep -E ' 40[34] | 50[0-5] '
# 生成安全报告(每周)
goaccess /var/log/nginx/access.log --log-format=COMBINED > report.html
10. 配置健康检查
# 测试配置语法
nginx -t
# 热重载配置(不中断服务)
nginx -s reload
通过这10项核心配置,可使Nginx安全评级大幅提升。