华为云认证账号 华为云国际站服务器Java部署详细指南
前言:别被‘国际站’仨字唬住,它和国内站只是域名不同
很多同学一看到「华为云国际站」(https://www.huaweicloud.com)就下意识点回国内站(https://www.huaweicloud.cn),以为语言不通、界面难懂、操作反人类——其实大可不必。国际站全英文界面?错,右上角点国旗图标,中文选项明晃晃挂着;控制台逻辑、ECS创建流程、安全组规则、SSH登录方式……和国内站几乎一模一样,连报错提示的中文翻译都挺靠谱。唯一真差别是:它支持PayPal、国际信用卡付款,且默认区域是新加坡、法兰克福、东京这些海外节点。所以,别慌,咱们今天就用最土的话,把Java项目从本地打包到华为云国际站跑起来这件事,掰开揉碎讲清楚。
第一步:买台“裸机”——创建ECS实例
选区域 & 规格,别盲目追高配
登录后,顶部菜单点 Compute → Elastic Cloud Server,进创建页。重点看三处:
- Region:新手建议选
Singapore (ap-southeast-1),延迟低、文档全、社区问题多,出事好搜答案; - Flavor:Java Web项目起步用
c6.large.2(2核4G)足够,别一上来选8核32G——钱花得冤枉,内存没压满,JVM反而容易GC抖动; - Image:选
Ubuntu 22.04 LTS或CentOS 7.9(如果你对CentOS有执念)。别选“带Tomcat镜像”,那种预装环境版本老旧、路径诡异,后期改配置能让你怀疑人生。
其他按默认走,但注意:务必勾选「Login with key pair」并提前创建/导入密钥对!密码登录在国际站默认禁用,没密钥=连不上=重装系统=时间归零。
安全组:不是防火墙,是“门禁登记表”
创建时会提示配置安全组。默认那个叫 default 的组,只开了22端口(SSH),你Java项目跑8080,网站打不开纯属正常。解决方法有两种:
- 改默认组:创建完立刻去 Networking → Security Groups,找到刚建的组,点「Manage Rules」→「Add Rule」,新增两条:
• 类型:HTTP(自动填80)
• 类型:Custom TCP,端口范围填8080,源地址填0.0.0.0/0(测试用,上线记得缩成你公司IP); - 建新组(推荐):起名
java-web-sg,规则一步到位,后续换ECS直接复用,省得每次手抖漏加端口。
第二步:连上去,别让SSH成“薛定谔的连接”
连不通?先问自己三个问题
- 本地终端执行
ssh -i ./mykey.pem [email protected],提示Permission denied (publickey)?→ 检查密钥权限:chmod 600 ./mykey.pem; - 提示
Connection refused?→ 登华为云后台,确认ECS状态是Running,且安全组已放行22端口; - 卡在
Connecting...不动?→ 看实例详情页的「弹性IP」是否绑定成功,没IP=没网=白搭。
连进去了,第一件事不是装JDK,而是升级系统:sudo apt update && sudo apt upgrade -y(Ubuntu)或 sudo yum update -y(CentOS),避免后续依赖冲突。
第三步:装Java环境——JDK + Tomcat,拒绝一键脚本
JDK:用官方包,别信apt/yum里的“最新版”
Ubuntu执行 sudo apt install openjdk-17-jdk 看似省事,但OpenJDK版本可能缺JFR、不兼容某些国产加密库。稳妥法:
- 去 Eclipse Temurin官网 下载
jdk-17.0.1+12tar.gz 包(Linux x64); wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.1%2B12/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz;tar -zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz -C /opt/;- 配置环境变量:
echo 'export JAVA_HOME=/opt/jdk-17.0.1+12' >> ~/.bashrc && echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc && source ~/.bashrc; - 验证:
java -version输出带Eclipse Adoptium即成功。
Tomcat:别解压到/opt/tomcat,那是给root准备的坑
Tomcat运行用户权限太关键!如果用root解压、启动,后续部署war包可能因权限问题404。正确姿势:
- 新建普通用户:
sudo useradd -m -d /home/tomcat tomcat; - 下载Tomcat 10.x(Servlet 5.0,兼容Spring Boot 3):
sudo -u tomcat wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.26/bin/apache-tomcat-10.1.26.tar.gz -P /home/tomcat/; - 解压并授权:
sudo -u tomcat tar -zxvf /home/tomcat/apache-tomcat-10.1.26.tar.gz -C /home/tomcat/; - 改目录名:
sudo -u tomcat mv /home/tomcat/apache-tomcat-10.1.26 /home/tomcat/tomcat; - 启动:
sudo -u tomcat /home/tomcat/tomcat/bin/startup.sh,浏览器访问http://你的IP:8080,看到猫脸即成功。
第四步:部署你的War包——不是拖进去就完事
war包丢哪儿?webapps/是入口,但别直接扔
Tomecat启动时会自动解压 webapps/ROOT.war 到 ROOT/ 目录。但如果你的项目叫 myapp.war,直接丢进去,它会解压成 myapp/,访问地址变成 http://ip:8080/myapp。想要根路径?两种法:
- 重命名war包为
ROOT.war(覆盖前删掉原ROOT目录); - 改server.xml:编辑
/home/tomcat/tomcat/conf/server.xml,在<Host>标签下加一行:<Context path="" docBase="/home/tomcat/myapp" reloadable="true"/>,然后把解压好的项目放/home/tomcat/myapp,重启Tomcat。
另外,别用Tomcat自带的manager页面上传——国际站默认关闭,开启要改配置、设账号,纯属给自己找麻烦。
第五步:开机自启 + 日志排查,让服务活过重启
systemd服务脚本,抄了就能用
华为云认证账号 创建文件 /etc/systemd/system/tomcat.service:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=JAVA_HOME=/opt/jdk-17.0.1+12
Environment=CATALINA_PID=/home/tomcat/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/home/tomcat/tomcat
Environment=CATALINA_BASE=/home/tomcat/tomcat
ExecStart=/home/tomcat/tomcat/bin/startup.sh
ExecStop=/home/tomcat/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用:sudo systemctl daemon-reload && sudo systemctl enable tomcat && sudo systemctl start tomcat。以后服务器重启,Tomcat自动拉起。
查日志?别瞎翻,记住这三行命令
- 看启动是否成功:
sudo journalctl -u tomcat -f(实时盯屏); - 查Java报错:
tail -50 /home/tomcat/tomcat/logs/catalina.out; - 查404/500:
tail -20 /home/tomcat/tomcat/logs/localhost_access_log.*(看请求路径对不对)。
最后提醒一句:如果访问显示 Whitelabel Error Page,八成是你Spring Boot项目没打成war包,或者 SpringBootServletInitializer 没继承——那已是另一个故事了,下次单开一篇。

