适用场景
中间件是业务入口,配置里藏着两类风险:安全(版本泄露、目录遍历、未授权访问)与稳定(连接数、超时、内存)。
配置步骤(Tomcat 加固与线程配置)
<!-- server.xml 关键项 -->
<Connector port=\「8080\」 protocol=\「HTTP/1.1\」
maxThreads=\「400\」 minSpareThreads=\「50\」 acceptCount=\「300\」
connectionTimeout=\「20000\」 URIEncoding=\「UTF-8\」 />
<!-- 关闭不必要的 AJP,或限制来源 -->
<!-- Server 头隐藏:server=\「 \」 -->
关键参数与建议
- 隐藏版本号与不必要的方法,关闭目录浏览与危险扩展解析
- 限制来源与访问控制:管理接口只允许内网,Redis 必须设密码且禁公网
- 连接与超时参数按业务调整,避免默认值导致雪崩
- 日志分级与轮转,避免单个日志文件写满磁盘
- 上线前用扫描器与压测各跑一遍,配置变更走版本管理
容易踩的坑
- AJP 端口(8009)暴露且存在历史漏洞
- manager/host-manager 未删或弱口令
- maxThreads 设过大,数据库连接池被打爆
验证与巡检
curl -I http://127.0.0.1:8080/
ss -lntp | grep -E '8009|8080'
- 巡检:无 AJP 暴露、manager 已移除、线程与连接池匹配
小结
中间件的故障八成来自配置变更:改前备份、改后压测、变更记录留档,是最省事的运维纪律。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。