适用场景

中间件是业务入口,配置里藏着两类风险:安全(版本泄露、目录遍历、未授权访问)与稳定(连接数、超时、内存)。

配置步骤(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 峰值

小结

中间件的故障八成来自配置变更:改前备份、改后压测、变更记录留档,是最省事的运维纪律。

> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。