本文说明如何通过堡垒机进入目标服务器,并部署一个 Tomcat Webhook 服务。示例中的域名、服务器名、账号、WAR 包名均为通用占位名称,请按实际环境替换。
一、进入堡垒机
- 打开堡垒机 Web 终端地址:
arduino
https://bastion.example.com/luna/
- 登录后,在左侧资产树中找到目标服务器,例如:
markdown
业务服务器组
└── Web服务组
└── app-web-server
- 右键目标服务器,选择:
sql
Connect
- 在连接弹窗中选择:
objectivec
系统用户:deploy-user
连接方式:Web CLI
- 点击
Confirm进入 Web 终端。
注意:如果选择 SSH Client,可能会尝试拉起本地客户端;如果只想在浏览器里操作,选择 Web CLI。
二、检查服务状态
进入服务器后,先确认 Tomcat 是否运行:
perl
ps -ef | grep -E 'tomcat|catalina|java' | grep -v grep
检查 8080 端口是否监听:
perl
ss -lntp | grep 8080
如果系统没有 ss,可以使用:
perl
netstat -lntp | grep 8080
测试本机接口:
bash
curl http://localhost:8080/sample-webhook/api/test
或:
bash
curl http://localhost:8080/sample-webhook/api/testPipeline
三、停止 Tomcat
部署前建议先停止 Tomcat:
arduino
sudo /opt/tomcat/bin/shutdown.sh
确认进程已退出:
perl
ps -ef | grep -E 'tomcat|catalina|java' | grep -v grep
如果仍有残留进程,需要谨慎确认后再处理。
四、清理旧版本
进入 Tomcat 应用目录:
bash
cd /opt/tomcat/webapps/
调整权限:
bash
sudo chmod -R 755 /opt/tomcat/webapps/
删除旧的 WAR 包和解压目录:
bash
sudo rm -f sample-webhook.war
sudo rm -rf sample-webhook
这里的 sample-webhook.war 和 sample-webhook 请替换为实际应用名称。
五、上传或复制新 WAR 包
如果 WAR 包已经在临时目录,例如:
bash
/tmp/sample-webhook.war
复制到 Tomcat webapps 目录:
bash
sudo cp /tmp/sample-webhook.war /opt/tomcat/webapps/
确认文件存在:
bash
ls -lh /opt/tomcat/webapps/sample-webhook.war
六、启动 Tomcat
启动 Tomcat:
ini
sudo JAVA_HOME=$JAVA_HOME /opt/tomcat/bin/startup.sh
或:
bash
sudo /opt/tomcat/bin/startup.sh
启动后等待几秒,再检查进程:
perl
ps -ef | grep -E 'tomcat|catalina|java' | grep -v grep
检查端口:
perl
ss -lntp | grep 8080
七、验证服务
本机验证:
bash
curl http://localhost:8080/sample-webhook/api/testPipeline
如果有外部访问域名,可验证:
arduino
curl https://web-service.example.com/sample-webhook/api/testPipeline
期望结果示例:
csharp
HTTP 200
handled Pipeline event
如果返回连接失败,优先检查 Tomcat 是否启动、8080 是否监听、WAR 是否正确解压。
八、查看日志
查看实时日志:
bash
cd /opt/tomcat/logs/
tail -f catalina.out
保存日志到文件:
bash
tail -f catalina.out > /tmp/sample-log.txt
查看最近错误:
bash
grep -Ei 'ERROR|Exception|SEVERE|failed' /opt/tomcat/logs/catalina.out | tail -50
九、常见问题
Tomcat 进程存在但 8080 不通:
perl
ss -lntp | grep java
确认实际监听端口,并检查 /opt/tomcat/conf/server.xml:
bash
grep -n 'Connector|port=' /opt/tomcat/conf/server.xml
WAR 包没有解压:
bash
ls -lh /opt/tomcat/webapps/
检查 Tomcat 日志是否有部署失败:
bash
tail -100 /opt/tomcat/logs/catalina.out
外部域名访问失败:
bash
curl http://localhost:8080/sample-webhook/api/testPipeline
如果本机正常但外部异常,重点检查 DNS、Nginx、网关、负载均衡或防火墙配置。
十、部署检查清单
css
[ ] 已进入正确服务器
[ ] 已停止旧 Tomcat 进程
[ ] 已删除旧 WAR 和旧解压目录
[ ] 已复制新 WAR 到 /opt/tomcat/webapps/
[ ] 已启动 Tomcat
[ ] Tomcat 进程存在
[ ] 8080 端口已监听
[ ] 本机 curl 返回正常
[ ] 外部域名访问正常
[ ] catalina.out 无明显启动错误