返回列表

华为云认证账号 华为云国际站服务器Java部署详细指南

华为云国际 / 2026-04-25 15:07:40

前言:别被‘国际站’仨字唬住,它和国内站只是域名不同

很多同学一看到「华为云国际站」(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 LTSCentOS 7.9(如果你对CentOS有执念)。别选“带Tomcat镜像”,那种预装环境版本老旧、路径诡异,后期改配置能让你怀疑人生。

其他按默认走,但注意:务必勾选「Login with key pair」并提前创建/导入密钥对!密码登录在国际站默认禁用,没密钥=连不上=重装系统=时间归零。

安全组:不是防火墙,是“门禁登记表”

创建时会提示配置安全组。默认那个叫 default 的组,只开了22端口(SSH),你Java项目跑8080,网站打不开纯属正常。解决方法有两种:

  1. 改默认组:创建完立刻去 Networking → Security Groups,找到刚建的组,点「Manage Rules」→「Add Rule」,新增两条:
    • 类型:HTTP(自动填80)
    • 类型:Custom TCP,端口范围填 8080,源地址填 0.0.0.0/0(测试用,上线记得缩成你公司IP);
  2. 建新组(推荐):起名 java-web-sg,规则一步到位,后续换ECS直接复用,省得每次手抖漏加端口。

第二步:连上去,别让SSH成“薛定谔的连接”

连不通?先问自己三个问题

  1. 本地终端执行 ssh -i ./mykey.pem [email protected],提示 Permission denied (publickey)?→ 检查密钥权限:chmod 600 ./mykey.pem
  2. 提示 Connection refused?→ 登华为云后台,确认ECS状态是 Running,且安全组已放行22端口;
  3. 卡在 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、不兼容某些国产加密库。稳妥法:

  1. Eclipse Temurin官网 下载 jdk-17.0.1+12 tar.gz 包(Linux x64);
  2. 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
  3. tar -zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz -C /opt/
  4. 配置环境变量:echo 'export JAVA_HOME=/opt/jdk-17.0.1+12' >> ~/.bashrc && echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
  5. 验证:java -version 输出带 Eclipse Adoptium 即成功。

Tomcat:别解压到/opt/tomcat,那是给root准备的坑

Tomcat运行用户权限太关键!如果用root解压、启动,后续部署war包可能因权限问题404。正确姿势:

  1. 新建普通用户:sudo useradd -m -d /home/tomcat tomcat
  2. 下载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/
  3. 解压并授权:sudo -u tomcat tar -zxvf /home/tomcat/apache-tomcat-10.1.26.tar.gz -C /home/tomcat/
  4. 改目录名:sudo -u tomcat mv /home/tomcat/apache-tomcat-10.1.26 /home/tomcat/tomcat
  5. 启动:sudo -u tomcat /home/tomcat/tomcat/bin/startup.sh,浏览器访问 http://你的IP:8080,看到猫脸即成功。

第四步:部署你的War包——不是拖进去就完事

war包丢哪儿?webapps/是入口,但别直接扔

Tomecat启动时会自动解压 webapps/ROOT.warROOT/ 目录。但如果你的项目叫 myapp.war,直接丢进去,它会解压成 myapp/,访问地址变成 http://ip:8080/myapp。想要根路径?两种法:

  1. 重命名war包为 ROOT.war(覆盖前删掉原ROOT目录);
  2. 改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 没继承——那已是另一个故事了,下次单开一篇。

下载.png
Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系