1. 概述
1.1 问题描述
工程部署到 Tomcat 中,默认端口号为 8080 ,用户想修改为其他端口号。
一个服务器启动多个 Tomcat 工程,启动失败,原因是多个工程共用一个端口号,端口冲突,需修改端口号。
1.2 解决思路
1)对于运维平台部署的FineReport项目,请勿参考本文方案手动配置
在部署阶段,用户即可界面化修改各个组件的占用端口,无需通过后台配置。
如已部署完成,如需修改组件的占用端口,请联系帆软技术支持协助配置。
2)对于非运维平台部署的FineReport项目
通过修改%Tomcat_HOME%/conf/server.xml文件中的端口号。
本文方案面向非运维平台部署的、Linux服务器环境、Tomcat中间件下的FineReport项目。
2. 操作步骤
2.1 了解端口作用
在Tomcat中,常见的端口及其默认值和作用如下:
建议检查并确认工程中的每个端口是否被占用,如果一个服务器中部署了多个Tomcat工程,请务必确保各个工程的这些端口配置均不相同。
端口 | 默认值 | 说明 |
---|---|---|
HTTP连接端口 | 8080 | Tomcat用于接受HTTP请求的端口 这是帆软应用的主要通信端口 如果没有安装负载均衡相关组件,这个端口就是用户访问工程的地址中的端口 |
AJP连接器端口 | 8009 | AJP(Apache JServ Protocol)连接器端口,用于连接Tomcat与前端的Web服务器(如Apache HTTP服务器)之间的通信 这有助于提高性能和负载均衡 |
实例管理端口 | 8005 | 用于Tomcat实例的管理任务 比如启动、停止、重新启动Tomcat实例 |
2.2 查看端口占用
管理员需要确保默认端口是否被占用,或如需更换端口,需要确认待使用端口是否被占用。
本文提供两种方法查看端口是否被占用,用户可按需选用。基于服务器操作系统或环境不同,可能方法不适用,可另行百度查询。
注:Linux服务器中,1024 以下端口一般只允许 root 权限用户占用。因此在准备新端口时,建议使用 1024 以上端口,例如:8081、8082 等。
lsof -i:端口号
可使用 lsof(list open files),用于查看某一端口的占用情况。
例如使用lsof -i:8080查看 8080 端口使用情况,发现进程号(PID)为 22936 的 java 进程占用了 8080 端口。
netstat -tunlp|grep 端口号
可使用 netstat -tunlp 用于显示 tcp、udp 的端口和进程等相关情况。
例如使用netstat -tunlp|grep 8080查看 8080 端口使用情况,发现进程号(PID)为 22936 的 java 进程占用了 8080 端口。
2.3 修改工程端口
确认好新端口空闲未被使用后,即可进行端口修改操作。
1)请参考「关闭或重启FineReport工程」文档,关闭工程。
2)打开终端,导航到Tomcat安装目录的conf目录下,打开并编辑server.xml文件
3)修改HTTP连接端口(默认为8080)
找到形如Connector port="8081" protocol="HTTP/1.1"的内容,修改port值,本示例修改为9980
如果没有安装负载均衡相关组件,这个端口就是用户访问工程的地址中的端口。
4)修改AJP连接器端口(默认为8009)
找到形如Connector protocol="AJP/1.3的内容,修改port值,本示例修改为9909
5)修改管理端口(默认为8005)
找到形如Server port="8005" shutdown="SHUTDOWN"的内容,修改port值,本示例修改为9905
6)保存文件,请参考「关闭或重启FineReport工程」文档重启工程,修改生效。
2.4 验证修改生效
使用新的HTTP连接端口,访问工程。如可正常访问,即为修改成功。
例如本示例,使用http://IP:9980/webroot/decision,即可正常访问工程
3. 注意事项
修改 Tomcat 端口号后,可能会出现变更失效或不起作用的情况,可参考以下步骤进行排查:
1)参考2.2节排查端口号是否被占用。
2)取消环境变量检查
打开终端,导航到Tomcat安装目录的bin目录下,打开并编辑startup.bat文件。
使用rem,将语句if not "%CATALINA_HOME%" == "" goto gotHome注释掉。
保存后,参考「关闭或重启FineReport工程」文档重启工程,修改生效。