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

相关推荐
CANI_PLUS1 小时前
电脑文件共享
运维·服务器
Decay__1 小时前
15_MySQL 数据同步与迁移方案 —— 复制 / DataX / Canal / 异构同步(对标 Oracle GoldenGate)
运维·数据库·sql·mysql·架构
Linux界最忧郁之人1 小时前
华为云ECS&IMS&AS实战|弹性云服务器、私有镜像、弹性伸缩完整实验
linux·运维·服务器·centos·华为云·openstack
后台模板学习2 小时前
GitHub Actions 与 Jenkins 在日志监
运维·github·jenkins
whyutianict_vv2 小时前
零基础转 AI 运维:投入清单、技术路线与核对表
linux·运维·人工智能·ai
无言听风雨丶2 小时前
systemd 与信号 / 僵尸进程:Linux 进程管理的底层逻辑与排错
linux·服务器·网络
DevOpenClub2 小时前
高考一分一段 API:分数查位次、科类枚举与历史对照
linux·数据库·高考
小贾要学习2 小时前
【C++后端开发项目】Reactor 模型 / C++ 仿写 muduo HTTP 服务器:让底层网络库真正跑起网页
linux·服务器·c++·http·网络编程·muduo·reactor模型
Blockbuater_drug3 小时前
OpenMM分子动力学模拟02 安装:Linux:conda 一条命令装通 GPU 加速的分子模拟环境
linux·conda·cuda·gpu驱动·pythonpath·openmm安装
杨云龙UP3 小时前
Oracle 同义词(SYNONYM)详解及 Toad for Oracle SQL 智能补全配置实战
运维·数据库·sql·oracle·同义词·toad·toad for oracle