适用场景
中间件是业务入口,配置里藏着两类风险:安全(版本泄露、目录遍历、未授权访问)与稳定(连接数、超时、内存)。
配置步骤(Nginx 加固与调优)
server_tokens off;
client_max_body_size 20m;
keepalive_timeout 65;
# 隐藏敏感文件
location ~ ^/(\.|\.git|\.env|composer\.(json|lock)) { return 404; }
# 禁止执行上传目录脚本
location ^~ /uploads/ { location ~ \.(php|jsp)$ { return 403; } }
# 限流(防 CC)
limit_req_zone zone=api:10m rate=20r/s;
location /api/ { limit_req zone=api burst=40 nodelay; proxy_pass http://backend; }
关键参数与建议
- 隐藏版本号与不必要的方法,关闭目录浏览与危险扩展解析
- 限制来源与访问控制:管理接口只允许内网,Redis 必须设密码且禁公网
- 连接与超时参数按业务调整,避免默认值导致雪崩
- 日志分级与轮转,避免单个日志文件写满磁盘
- 上线前用扫描器与压测各跑一遍,配置变更走版本管理
容易踩的坑
- 未关 server_tokens,版本号泄露被针对
- 上传目录可执行脚本,等于开了后门
- 未配 client_max_body_size,上传大文件直接 413
验证与巡检
nginx -t
curl -I http://127.0.0.1 | head -3
- 巡检:配置校验通过、版本号隐藏、限流生效、错误日志无 502 峰值
小结
中间件的故障八成来自配置变更:改前备份、改后压测、变更记录留档,是最省事的运维纪律。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。