返回列表

阿里云企业认证老号 阿里云国际站服务器Java部署详细指南

阿里云国际 / 2026-04-25 12:57:40

阿里云国际站服务器Java部署详细指南

别慌,这不是一篇让你边看边叹气的‘官方文档翻译版’。它更像一位刚熬完三夜帮你把项目跑起来的同事——语气有点损,但每一步都踩在你真正卡壳的地方。今天咱们不讲云原生、不聊K8s编排,就老老实实把一个Spring Boot(或传统WAR)应用,稳稳当当地塞进阿里云国际站(Alibaba Cloud International)的ECS里,让它能被全世界访问到。

第一步:买台“干净”的ECS,别选错区

国际站界面和国内站长得像表兄弟——相似但细节处处是坑。首先进控制台,选 Elastic Compute Service (ECS)Create Instance。重点来了:

  • Region(区域):别图便宜选‘印度孟买’,除非你用户真在那儿。推荐新加坡(ap-southeast-1)或东京(ap-northeast-1),延迟友好、IP质量稳、中文支持还行;
  • Instance Type:新手闭眼选 t6t7 共享型(比如 t7.small),1核2G起步够跑个管理后台;别碰‘突发性能实例’,CPU一飙高就限频,你Java应用GC时它直接给你表演龟速;
  • OS Image:选 Ubuntu 22.04 LTS(不是24.04!新系统OpenJDK版本太新,某些老框架会翻白眼)或 CentOS Stream 9(注意:不是CentOS 7!那玩意儿官方早停更了);
  • Key Pair:必须创建并下载私钥(.pem文件),别勾‘Password Authentication’——密码登录?那是给黑客递梯子。

下单前再瞄一眼:公网IP要勾选‘Assign Public IPv4 Address’,不然你的服务器就是个局域网里的哑巴。

第二步:连上去,先别急着装JDK

用终端(Mac/Linux)或PuTTY(Windows)连:
ssh -i "your-key.pem" [email protected](Ubuntu用户)或 ssh -i "your-key.pem" [email protected](CentOS用户)。

连上第一件事?不是装Java,而是 更新源+装基础工具

# Ubuntu
sudo apt update && sudo apt install -y curl wget vim net-tools gnupg lsb-release
# CentOS Stream 9
sudo dnf update -y && sudo dnf install -y curl wget vim net-tools gnupg

为什么?因为后面装JDK、传文件、查端口全靠它们。别跳过——我见过三次因没装net-tools导致ifconfig报错,然后人就去搜‘Linux ifconfig command not found’,再点进知乎看了两小时哲学问答……

第三步:装JDK,别信‘sudo apt install default-jdk’

Ubuntu默认JDK可能是11或17,但你的Spring Boot 2.7要求JDK 11,而Spring Boot 3.x死磕JDK 17+。所以——手动装指定版本最稳。

以JDK 17为例(LTS长期支持版):

curl -O https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
sudo tar -xzf jdk-17_linux-x64_bin.tar.gz -C /opt/
sudo ln -sf /opt/jdk-17.0.1 /opt/java

然后写入环境变量:

echo 'export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH' | sudo tee /etc/profile.d/java.sh
source /etc/profile.d/java.sh

验证:java -version 输出带17.0.1才算成功。如果还是旧版本?重启shell或重登SSH。

阿里云企业认证老号 第四步:部署方式二选一:Jar or WAR?

Scenario A:Spring Boot 打成 jar 包(推荐)
本地mvn clean package后,用scp上传:

scp -i "your-key.pem" target/myapp.jar [email protected]:/home/ubuntu/app/

建个守护脚本/home/ubuntu/app/start.sh

#!/bin/bash
nohup java -Xms512m -Xmx1g -jar /home/ubuntu/app/myapp.jar --server.port=8080 > /home/ubuntu/app/app.log 2>&1 &

加执行权限:chmod +x start.sh,运行:./start.sh。再用tail -f app.log盯日志,看到Started Application in X.XXX seconds?恭喜,活了。

Scenario B:传统WAR丢Tomcat(怀旧党适用)
装Tomcat 10(注意:Servlet API 5.0,别下错成9):

curl -O https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.26/bin/apache-tomcat-10.1.26.tar.gz
sudo tar -xzf apache-tomcat-10.1.26.tar.gz -C /opt/
sudo ln -sf /opt/apache-tomcat-10.1.26 /opt/tomcat

改端口(避免冲突):sudo vim /opt/tomcat/conf/server.xml,把Connector port="8080"改成8081
放WAR包:cp your-app.war /opt/tomcat/webapps/
启动:sudo /opt/tomcat/bin/startup.sh
查日志:tail -f /opt/tomcat/logs/catalina.out

第五步:防火墙?安全组才是真·门神

ECS自带UFW(Ubuntu)或firewalld(CentOS),但阿里云国际站的流量第一道关卡是安全组!去ECS控制台 → 实例详情 → Security Groups → 编辑入方向规则:

  • HTTP:端口 80,来源 0.0.0.0/0;
  • HTTPS:端口 443,来源 0.0.0.0/0;
  • 自定义TCP:端口 8080(或你用的端口),来源 0.0.0.0/0;
  • 别开22端口给全世界——只留你办公室IP或公司出口IP。

改完等10秒,再浏览器敲http://你的公网IP:8080,看到熟悉的欢迎页?干杯!

第六步:域名+HTTPS,让老板觉得你很专业

买个域名(Namecheap、Google Domains都行),DNS解析A记录指向你的ECS公网IP。
HTTPS用 Let’s Encrypt + Certbot,一行命令搞定:

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot certonly --standalone -d yourdomain.com -d www.yourdomain.com

证书路径:/etc/letsencrypt/live/yourdomain.com/fullchain.pemprivkey.pem
Spring Boot里加配置:

server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=changeit
# (或直接用Nginx反向代理+SSL,更推荐)

或者,更优雅的方式:装Nginx做反代(轻量、稳定、还能加缓存):

sudo apt install nginx
sudo vim /etc/nginx/sites-available/myapp

内容:

server {
    listen 443 ssl;
    server_name yourdomain.com;
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$host$request_uri;
}

启用:sudo ln -sf /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/sudo nginx -t && sudo systemctl reload nginx

最后送你三条保命口诀

  1. 日志永远比报错快半拍journalctl -u tomcat -ftail -f /var/log/nginx/error.logjournalctl -u nginx -f——这三个命令背熟,能省你六小时;
  2. 端口占用?杀它全家sudo lsof -i :8080 查PID,sudo kill -9 PID
  3. 重启不是万能解药,但不重启一定不行:改完Nginx、改完安全组、改完Java参数……统统要reload或restart,别信‘应该生效了’。

好了,现在你可以把链接发给产品、测试、甚至老板了。他问‘怎么部署的?’,你就微微一笑:“买了台云服务器,敲了几行命令,顺便给它配了个域名和绿锁。” —— 而你心里清楚:这背后是三个深夜、七次重装、和一次差点卸载IDEA的冲动。

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系