# 《AI 新范式》第6节:应用部署到云服务器

作者:小傅哥
博客:https://bugstack.cn (opens new window)
视频:https://t.zsxq.com/5c9qk (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

JAR 打包上传 · Docker 容器化 · 域名绑定上线,让全世界访问你的应用。

# 一、本章诉求

将本地开发的 SpringBoot 应用打包上传到云服务器,通过 Docker 容器化部署,配合 Nginx 反向代理绑定域名,完成一键上线。

# 二、打包与 Docker 部署

# 1. Maven 打包

mvn clean package 生成 JAR,确保本地测试通过再上传。

# 2. Dockerfile

基于 JDK 17 镜像,EXPOSE 8080,一条命令构建镜像。

# 3. Nginx 反代

反向代理 80 → 8080,域名绑定,HTTPS 证书配置。

# 三、Dockerfile

FROM openjdk:17-jdk-slim
WORKDIR /app
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
1
2
3
4
5

# 四、部署命令

# 构建镜像
docker build -t form-service .

# 启动容器
docker run -d \
  --name form-service \
  -p 8080:8080 \
  --network host \
  form-service

# 查看日志
docker logs -f form-service
1
2
3
4
5
6
7
8
9
10
11
12

# 五、域名绑定与上线验证

整体链路如下:

👤 用户访问(form.xiaofuge.cn)
        ↓ DNS 解析
🌐 Nginx 反代(80/443 → 8080)
        ↓ 转发请求
🚀 SpringBoot 容器(8080 端口)
1
2
3
4
5

# Nginx 配置

server {
  listen 80;
  server_name form.xiaofuge.cn;

  location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
  }
}
1
2
3
4
5
6
7
8
9

# 上线验证清单

  • DNS 解析是否生效
  • Nginx 反代是否正常
  • API 接口能否访问
  • MySQL 连接是否正常
  • Redis 缓存是否生效
  • Docker 容器运行稳定

# 六、读者作业

  • 简单作业:将本地应用打包部署到云服务器,通过 IP:8080 访问验证接口可用。
  • 复杂作业:思考 Nginx 反向代理和负载均衡的区别?如果有两台应用服务器,如何配置 Nginx 实现负载均衡?