如何在Linux环境Azure App Service中隐藏Tomcat服务器信息
Azure App Service Linux 环境隐藏 Tomcat 服务器信息解决方案
配置失败原因说明
Azure App Service Linux 环境的 Tomcat 以容器化方式运行,默认优先加载容器内部自带的 Tomcat 依赖包,手动上传到 /home/tomcat/lib 的自定义包优先级低于容器内置包,所以配置无法生效。
可用操作方案
方案1:调整类加载优先级使自定义配置生效
- 登录 Azure 门户进入对应 App Service 控制台,依次打开「配置」→「应用程序设置」,添加如下配置项:
键:CATALINA_OPTS
值:-Djava.class.path=/home/tomcat/lib/catalina.jar:$CATALINA_HOME/lib/catalina.jar
保存配置后等待应用自动重启。 - 确认修改的
catalina.jar配置正确:
解压jar包后找到org/apache/catalina/util/ServerInfo.properties,修改对应参数:
重新打包后上传到server.info=Unknown server.number=0.0.0.0 server.built=Unknown/home/tomcat/lib目录即可。
方案2:用 App Service 内置规则直接抹除Server头(操作更简单,无需修改Tomcat包)
直接在 App Service 的「配置」→「应用程序设置」中添加如下配置项:
- 键:
WEBSITE_HTTPHEADERS_REMOVE_SERVER - 值:
1
保存重启后,Azure 网关会自动删除所有响应中的 Server 头,不需要修改 Tomcat 本身配置,适配容器化部署环境。
验证方法
配置生效后,用curl命令测试响应头确认效果:curl -I 你的应用访问域名
查看返回结果中是否还有Tomcat相关的Server信息。
内容的提问来源于stack exchange,提问作者askwer
相关产品推荐
相关产品推荐

