从本地开发到线上发布:FastAPI + Vue3 全栈项目在宝塔面板的深度部署指南
很多开发者朋友都有过这样的经历:本地跑得飞快的项目,一到服务器部署就各种水土不服。尤其是前后端分离的架构,前端要打包、后端要配置、域名要解析、Nginx要反向代理,中间还夹杂着跨域、HTTPS、环境变量等一系列问题。我自己在部署第一个FastAPI+Vue3项目时,也曾在阿里云的控制台和宝塔面板之间反复横跳,踩了不少坑。今天,我就把这些实战经验系统化地梳理出来,希望能帮你绕过那些常见的“暗礁”,顺利将你的Demo转化为稳定运行的线上产品。
这篇文章面向的是已经购买了云服务器(以阿里云ECS为例),但对运维部署细节还不够熟悉的开发者或小团队。我们不只讲步骤,更会深入每个环节背后的原理和最佳实践,让你真正理解“为什么要这么做”。我们会从代码托管开始,一步步走过服务器环境搭建、前后端独立部署、Nginx精细化配置、域名与HTTPS集成,直到最终联调验证。过程中,我会穿插一些我实际遇到的“坑”和解决方案,以及如何利用宝塔面板的图形化界面提升效率,同时又不失对底层配置的掌控力。
1. 部署前的战略准备:代码、服务器与工具链
在真正动手操作服务器之前,花些时间做好准备工作,能让你后续的部署过程事半功倍。这个阶段的核心是建立一套清晰、可重复的代码流转和服务器管理流程。
1.1 代码仓库的规范化管理与SSH密钥配置
将代码托管到云端仓库(如Gitee)不仅是备份,更是团队协作和持续部署的基础。对于部署而言,使用SSH密钥进行认证比账号密码更安全、更便捷。
首先,在本地开发机生成SSH密钥对。打开终端,执行以下命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
连续按回车接受默认保存路径(~/.ssh/id_rsa)和空密码(或设置一个强密码)。完成后,你会得到两个文件:私钥 id_rsa(务必保密)和公钥 id_rsa.pub。
接下来,启动SSH代理并添加私钥,这样在每次连接时就不需要重复输入密码(如果你设置了的话):
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
现在,将公钥内容添加到Gitee。复制公钥:
cat ~/.ssh/id_rsa.pub
# 输出以 ssh-rsa AAA... 开头的一长串字符,全部复制
登录Gitee,进入“设置” -> “SSH公钥”,将复制的内容粘贴进去,标题可以自拟(如“My Dev Machine”)。添加成功后,你就可以使用SSH URL(如 git@gitee.com:yourname/your-repo.git)来克隆和推送代码,无需每次验证密码。
提示:确保你的项目根目录下有一个清晰的
.gitignore文件,排除node_modules,__pycache__,.env(但保留.env.example)等不需要版本控制的文件,保持仓库的整洁。
1.2 云服务器选购与宝塔面板初始化
选择阿里云ECS时,除了关注CPU、内存和带宽,系统镜像的选择尤为关键。对于新手,我强烈推荐选择宝塔面板官方提供的预装镜像。这能省去手动安装宝塔的繁琐步骤,避免因系统环境差异导致的安装失败。
购买完成后,通过阿里云控制台获取服务器的公网IP、设置服务器登录密码或密钥对。然后,通过SSH客户端(如Termius、Xshell或系统终端)连接服务器:
ssh root@你的服务器公网IP
如果使用的是宝塔预装镜像,连接后输入 bt 命令,再输入数字 14,即可看到宝塔面板的登录地址、用户名和随机密码。记下这些信息。
注意:首次登录宝塔面板,系统会提示你安装一组推荐的应用套件(LNMP或LAMP)。对于我们的FastAPI(Python) + Vue3(Node)技术栈,我建议选择 Nginx 1.24+ 和 MySQL 8.0+。其他如PHP、Pure-Ftpd等可以取消勾选,按需后续安装。这能保持服务器环境的纯净。
1.3 服务器安全组与防火墙的双重配置
这是保障服务器安全的第一道防线,也是最容易出错的地方。你需要确保外部网络能够访问到你服务所监听的特定端口。
阿里云安全组(控制台配置): 这是云服务商层面的虚拟防火墙。进入ECS控制台,找到你的实例所属的安全组,添加入方向规则。至少需要开放以下端口:
| 端口 | 协议 | 授权对象 | 用途说明 |
|---|---|---|---|
| 22 | TCP | 0.0.0.0/0 (或你的IP) | SSH远程管理 |

&spm=1001.2101.3001.5002&articleId=153249397&d=1&t=3&u=7d3bdc9f8bfa4e76b684886bdac26cf9)
3781

被折叠的 条评论
为什么被折叠?



