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 项目就完整部署上线啦!!!

相关推荐
小马不起床2 分钟前
零基础玩转 FastAPI_05:后端课程模块
python·fastapi
半杯咖啡半行码25 分钟前
Linux 驱动开发入门:内核模块编程基础
linux·服务器·网络
别动我齐刘海1 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人
龙虾电话1 小时前
语音机器人打断不进去:VAD 双阈值迟滞里一个共用的 bool,和它引发的连锁误判
linux
honsor1 小时前
机房IP化改造首选:以太网温湿度传感器,PoE供电+Modbus TCP一网搞定
linux·运维·服务器
星创易联1 小时前
PLC数据采集与远程运维平台:从边缘计算到集中监控
大数据·运维·边缘计算
默|笙2 小时前
【Linux网络】_udp_socket(认识)
linux·网络·udp
寻道模式2 小时前
【运维心得】完整教程:绕过Win11限制让老机焕发新生
运维·操作系统·win11
程序员梅雨2 小时前
ZooKeeper面经总结
java·大数据·linux·分布式·后端·zookeeper·中间件
zzu123zsw2 小时前
从 proxy_pass 末尾斜杠到 WebAssembly 预压缩:深挖 Nginx 生产环境四大高频踩坑点
运维·nginx·wasm·webassembly·devops·运维排错