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 clone 或 scp:
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
但这里有个大坑:这个命令一关掉终端就停了。所以你还得用 pm2、systemd 或 supervisor 这类工具,让它”在后台一直活着、崩了自动重启”。
第 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 - 传统部署的痛点与缺陷