首页 / 知识库 / 系统架构体系 / 项目到底如何部署

01 - 传统部署:自己一台服务器是怎么上线的

在讲”现代化部署”之前,我们必须先搞懂传统部署长什么样。因为只有亲眼看过传统方式有多繁琐,你才能真正体会到后面现代方式的”香”。

先想清楚一件事:部署到底在干嘛?

你的项目现在只能在自己电脑上跑,别人访问不了。部署,就是想办法让它跑在一台别人也能访问到的电脑上——这台电脑就是服务器

服务器和你的电脑没有本质区别,只是它:

  • 有一个公网 IP(相当于一个所有人都能拨打的电话号码)
  • 7×24 小时开机,不会像你的笔记本一样合盖就休眠

所以传统部署的第一步,就是先搞一台服务器

传统部署的完整流程

假设你有一个前端(Vue)+ 后端(FastAPI)+ 数据库(PostgreSQL)的项目,用自己一台服务器部署,大致要走完这些步骤:

第 1 步:买一台服务器

去云厂商买一台云服务器(阿里云叫 ECS、腾讯云叫 CVM),选好地域、配置(几核几 G)、操作系统(一般是 Linux)。付完钱,你会拿到一个公网 IP 和登录密码。

第 2 步:远程登录进去

用 SSH 命令登录到这台远在机房的电脑:

ssh root@123.45.67.89

从此你就在一个黑乎乎的命令行里操作它,没有桌面、没有鼠标。

第 3 步:装一堆环境

这台服务器是”裸”的,什么都没有。你要一样样装:

# 装 Python、Node、数据库、Nginx……
apt update
apt install python3 python3-pip nodejs npm nginx postgresql -y

版本对不对、依赖缺不缺,全靠自己排查——这就是 Docker 系列里讲的”在我电脑上是好的呀”问题的重灾区。

第 4 步:把代码传上去

把本地代码传到服务器,通常用 git clonescp

git clone https://github.com/you/your-project.git

第 5 步:跑起后端

装好后端依赖,把服务启动起来:

pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8000

但这里有个大坑:这个命令一关掉终端就停了。所以你还得用 pm2systemdsupervisor 这类工具,让它”在后台一直活着、崩了自动重启”。

第 6 步:build 前端 + 配 Nginx

前端 npm run build 出一堆静态文件,然后配置 Nginx

  • 让用户访问网站时,返回前端的静态文件
  • /api 开头的请求,转发给后端的 8000 端口(这叫反向代理
server {
    listen 80;
    location / {
        root /var/www/frontend/dist;   # 前端静态文件
    }
    location /api {
        proxy_pass http://127.0.0.1:8000;  # 转发给后端
    }
}

第 7 步:配数据库、域名、HTTPS

  • 初始化 PostgreSQL、建库建表、配好连接
  • 买域名,把域名解析到服务器 IP
  • 申请 SSL 证书、配置 HTTPS(否则浏览器显示”不安全”)

[配图:一台服务器图标,里面塞满了 Nginx、后端进程、数据库、前端文件等一堆组件,旁边站着一个满头大汗、手动操作的开发者]

走完这一趟,你才第一次上线

恭喜,网站终于能访问了。但请注意:以上每一步都是手动的。而且这还只是”第一次部署”。

下次你改了一行代码想更新,你得再登录服务器、再拉代码、再重启服务……每次都来一遍。

小结

  • 传统部署的核心是:自己搞一台服务器,然后手动把所有东西装好、跑起来、维护住
  • 完整流程:买服务器 → 登录 → 装环境 → 传代码 → 起后端(还要守护进程)→ build 前端 + 配 Nginx → 配数据库/域名/HTTPS。
  • 每一步都靠手动,且每次更新都要重来一遍。

这套流程能用,但问题很多。下一章我们就来数一数:传统部署到底累在哪、坑在哪。


下一章 → 02 - 传统部署的痛点与缺陷