问题现象
- SpringBoot应用的application.properties文件中,配置的Tomcat端口不生效。
- 在控制台修改Tomcat端口后,在机器上查看时,发现监听在此端口的并不是Tomcat进程。
可能原因
上述问题为正常现象。由于SAE实现流量灰度功能的需要,在SAE中所有使用了流量灰度的应用,其服务请求都是先经过Tengine,然后再由Tengine转发到Tomcat。为了使Tengine能够顺利找到Tomcat端口,在使用了Tengine的情况下,SAE将Tomcat端口设置为固定值65000。
例如以下配置:
server.port=28082
虽然您手动配置了端口值28082,但是启动参数中已默认添加--server.port=65000
,因此生效的端口值仍然为65000。因此,观察Tomcat是否启动成功时,需要注意Tomcat是监听在65000端口的。
解决方案
修改应用端口,其实修改的是Tengine端口。例如,下图的控制台配置中,虽然将应用端口(Tengine端口)值改成了8080,但实际上Tomcat端口值仍然为65000。更多信息,请参见设置Java Tomcat参数。