如何增大Azure App Service中Spring Boot WAR应用的Tomcat maxHttpHeaderSize
调整Azure App Service(Windows环境)中Tomcat 9的maxHttpHeaderSize参数
方法1:用Azure门户的应用设置指定JVM参数
- 打开你的App Service,进入配置 > 应用设置
- 新增一个名为
CATALINA_OPTS的设置,值填-Dserver.max-http-header-size=32768(32KB对应32768字节) - 保存后重启App Service,这个参数会强制覆盖Tomcat的默认头大小限制
方法2:在WAR包里嵌入Tomcat配置文件
- 在Spring Boot项目的
src/main/webapp/WEB-INF目录下(没有就新建)创建context.xml文件 - 写入以下配置,直接修改Tomcat Connector的头大小:
<Context> <Connector port="8080" maxHttpHeaderSize="32768" /> </Context>
- 重新打包WAR包,通过DevOps流水线重新部署
方法3:通过启动命令直接指定参数
- 进入App Service的配置 > 常规设置,找到启动命令,输入:
java -Dserver.max-http-header-size=32768 -jar your-app-name.war
(把your-app-name.war换成你实际的WAR包文件名)
- 保存后重启服务,启动参数会直接传给JVM和Tomcat
关键提醒
- 32KB对应字节数是32768,别填错数值
- 任何配置修改后必须重启App Service才会生效
- 因为你是部署WAR包到Azure托管的Tomcat,本地用的
application.yml或SERVER_MAX_HTTP_HEADER_SIZE环境变量会被托管Tomcat的默认配置覆盖,所以必须用上面这些针对托管环境的配置方式
内容的提问来源于stack exchange,提问作者Duncs
相关产品推荐
相关产品推荐

