Vue+FastAPI 项目宝塔Linux部署指南

一、前置准备

  • 腾讯云轻量应用服务器已安装宝塔 Linux 面板;
  • 本地完整的 Vue + FastAPI 前后端分离项目代码;
  • **Nginx,**这是前端部署和反向代理的核心。

二、后端 FastAPI 部署(宝塔 Python 项目)

2.1 本地后端

1.backend 文件夹根目录(和 main.py 同级),在requirements.txt,写入项目依赖:

python 复制代码
fastapi
uvicorn[standard]

# 你的其他依赖(如 pandas、numpy 等)

2. 配置跨域中间件在 main.py 中添加 CORS 配置,确保前端能正常请求接口:

python 复制代码
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI(
    title="Math网站",
    version="0.2.0",
    description="网站",
)

# 新手阶段直接允许所有来源,后续上线可改为具体域名
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

# 接口代码示例
@app.get("/")
def read_root():
    return {"message": "Hello World"}

@app.get("/api/health")
def health_check():
    return {"status": "healthy"}

2.2 宝塔创建并配置 Python 项目

2.3 安装依赖并启动

  1. 项目创建后,点击右侧【环境管理】
  2. 选择【从 requirements.txt 安装】,选中项目里的 requirements.txt
  3. 安装完成后,回到项目列表,点击【重启】
  4. 查看【项目日志】,出现 INFO: Uvicorn running on http://0.0.0.0:8090 即为启动成功

2.4 后端外网验证与端口放行

  1. 验证 :本地浏览器访问 http://你的服务器公网IP:8090/docs,能看到 Swagger 接口文档即为成功
  2. 端口放行(必做)
    • 宝塔内:左侧【安全】→ 防火墙,放行 8090
    • 腾讯云控制台:云服务器 → 安全组 → 添加入站规则(自定义 TCP,端口 8090,授权对象 0.0.0.0/0

三、前端 Vue 部署(宝塔 HTML 项目)

3.1 本地前端代码预处理

**1. 配置 vite.config.ts**确保配置正确,避免打包后资源路径错误:

python 复制代码
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig(({ mode }) => ({
  base: mode === 'production' ? '/' : '/',
  plugins: [vue()],
  server: {
    proxy: {
      // 开发时代理,打包后失效,部署后靠宝塔反向代理
      '/api': {
        target: 'http://127.0.0.1:8000',
        changeOrigin: true,
      },
    },
  },
}))

2. 配置生产环境接口地址 在 Vue 项目根目录新建 / 打开 .env.production,写入:

python 复制代码
VITE_API_BASE=http://你的服务器公网IP:8090

3.2 本地打包与验证

在 Vue 项目根目录 (包含 package.json 的文件夹)运行:

python 复制代码
npm run build

生成一个 dist 文件夹

3.3 宝塔创建 HTML 项目

宝塔左侧【网站】→ 切换到【HTML 项目】→ 点击【添加站点】

3.4 修改端口并上传文件

  1. 站点创建后,点击右侧【设置】,将默认端口 80 改为你想要的端口(如 8505),保存

2. 正确上传文件

开本地 dist 文件夹 ,点击进去,全选里面的所有文件(index.html、assets 等) ,不要直接选 dist 文件夹本身------压缩成 zip 包------上传到宝塔项目根目录,解压。

====》》打开项目的根目录,第一眼必须直接看到 index.html

放行端口 :去宝塔【安全】和腾讯云安全组,放行 8505 端口(步骤同后端)

四、部署完成后的最终访问地址

完成以上所有部署步骤后,你的项目就正式上线了,直接复制对应地址到浏览器即可访问,核心规则:访问前端页面用前端端口,访问后端接口用后端端口

标准访问地址对照表

访问目标 对应端口 通用访问格式 核心用途
Vue 前端项目主页面 前端端口(本教程示例:8505) http://你的服务器公网IP:前端端口号 项目正式访问地址,发给其他人即可直接打开你的网站
FastAPI 后端接口文档 后端端口(本教程示例:8090) http://你的服务器公网IP:后端端口号/docs 开发测试专用,可直接在页面测试所有接口、查看接口参数与返回值

完成以上步骤,你的 Vue + FastAPI 项目就完整部署上线啦!!!

相关推荐
杜哥无敌1 小时前
FreeSSHd vs FileZilla Server vs SFTPGo:Windows SFTP服务器易用性终极横向测评
运维·服务器·windows
楼田莉子1 小时前
仿Muduo的高并发服务器:Channel模块与Poller模块
linux·服务器·c++·学习·设计模式
zhouwy1131 小时前
Linux网络编程从入门到精通
linux·c++
zhangrelay1 小时前
ROS Kinetic-信号与系统-趣味案例
linux·笔记·学习·ubuntu
IMPYLH1 小时前
Linux 的 tail 命令
linux·运维·服务器·bash
生成论实验室1 小时前
《事件关系阴阳博弈动力学:识势应势之道》第五篇:安全关键关系——故障、障碍与冲突
运维·服务器·人工智能·安全·架构
weixin_446260851 小时前
应用实战篇:利用 DeepSeek V4 构建生产级 AI 应用的全流程与最佳实践
大数据·linux·人工智能
.柒宇.2 小时前
AI掘金头条项目 Docker Compose 部署完整教程(附踩坑记录)
运维·后端·python·docker·容器·fastapi
Nightwish52 小时前
Linux随记(三十)
linux·运维·mysql·ambari