当前位置: 首页 > news >正文

nginx一个域名下部署多套前端项目

一、实际场景

  • 1、现在前端创建了2个vue工程,分别为管理系统admin,另外一个是给酒店使用的管理系统hotel,另外一个是公司官网,一起是3个项目现在要部署上线,解决办法有2种方案
    • 一个域名下来做官网,创建2个二级域名分别用于管理系统和酒店系统,(这个比较简单)
    • 一个域名下部署几套项目,(今天主要介绍这个方式)
  • 2、我们希望的访问方式
    • https://xxx/admin/login访问的是管理系统
    • https://xxx/hotel/login访问的酒店的管理系统

二、前端工程基本步骤

  • 1、创建2个vue项目,分别为admin-webhotel-web

  • 2、现在以hotel-web系统为例

  • 3、在.env.development.env.sit.env.production几个环境中都加上一个环境变量

    VITE_BASE_PATH = "hotel"
    
  • 4、在vite.config.js修改配置

    import path from 'path';
    import { defineConfig, loadEnv } from 'vite';
    // https://vitejs.dev/config/export default ({ mode }) => {const env = loadEnv(mode, process.cwd()); // --> 配置return defineConfig({publicDir: 'static',base: env.VITE_BASE_PATH, // --> 配置server: { host: '0.0.0.0', // 允许外部访问port: 5000, // 可选:指定端口号,默认是3000strictPort: true, // 可选:如果指定端口被占用,直接退出而非选择一个空闲端口},// 省去别的配置})
    }
    
  • 5、在路由文件中使用全局变量

    const router = createRouter({history: createWebHashHistory(import.meta.env.VITE_BASE_PATH), // -->这个地方routes,scrollBehavior() {return { top: 0 };},
    });
    
  • 6、现在运行前端工程的地址为:http://localhost:5000/hotel

  • 7、打包

    "scripts": {"dev": "vite --mode development","dev:sit": "vite --mode sit","build": "vite build","build:dev": "vite build --mode development","build:sit": "vite build --mode sit","build:uat": "vite build --mode uat","build:pro": "vite build --mode production","preview": "vite preview","lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore","format": "prettier --write src/","prepare": "husky install","svgo": "svgo -f src/icons/svg --config=src/icons/svgo.config.js"}
    
  • 8、同理如果是admin的直接把VITE_BASE_PATH = "admin"就可以,官网的就改成VITE_BASE_PATH = "/"

三、在nginx中修改配置

  • 1、自己安装nginx

  • 2、找到配置文件

  • 3、配置nginx文件

    
    server {listen 80 default_server;listen [::]:80 default_server;server_name _;# 官网地址location / {try_files $uri $uri/ =404;index index.html index.htm index.nginx-debian.html;root /home/html;}# 管理系统location /admin {alias /home/admin-web/;index index.html index.htm;try_files $uri $uri/ /admin/index.html;}# 酒店系统location /hotel {alias /home/hotel-web/;index index.html index.htm;try_files $uri $uri/ /hotel/index.html;}# 静态文件location /hotel/static {alias /home/hotel-api/static;}location /admin/static {alias /home/admin-api/static;}# 管理系统后端接口location /api/v1/admin {proxy_pass http://127.0.0.1:8888/api/v1/admin;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header REMOTE-HOST $remote_addr;add_header X-Cache $upstream_cache_status;proxy_set_header X-Host $host:$server_port;proxy_set_header X-Scheme $scheme;proxy_connect_timeout 30s;proxy_read_timeout 86400s;proxy_send_timeout 30s;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}# 酒店系统后端接口location /api/v1/hotel {proxy_pass http://127.0.0.1:8889/api/v1/hotel;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header REMOTE-HOST $remote_addr;add_header X-Cache $upstream_cache_status;proxy_set_header X-Host $host:$server_port;proxy_set_header X-Scheme $scheme;proxy_connect_timeout 30s;proxy_read_timeout 86400s;proxy_send_timeout 30s;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}
    }
    
  • 4、重启nginx

http://www.dtcms.com/a/299542.html

相关文章:

  • 松茸第一品牌菌贝品质把控对行业的影响分析
  • haproxy配置详解
  • mysql查找数据库表中某几个连续的编号中中断的编号
  • RustFS for .NET 演示项目深度解析:构建 S3 兼容的分布式存储应用
  • 二次函数图像动画展示
  • 雨雪雾冰全预警:交通气象站为出行安全筑起“隐形防护网”
  • 【愚公系列】《MIoT.VC》003-构建基本仿真工作站(组件的属性、行为、视频展示)
  • Spring Boot 单元测试进阶:JUnit5 + Mock测试与切片测试实战及覆盖率报告生成
  • inversify
  • 【web大前端】001_前端开发入门:创建你的第一个网页
  • 0基础法考随手笔记 03(刑诉05 刑事证据与证明+06 强制措施)
  • 【智能协同云图库】第三期:实现用户上传图片及审核功能、使用模板方法模式优化上传图片功能、使用 Jsoup 实现批量抓取和上传图片功能
  • 掌握Gemini-2.5:现代AI开发中实用应用的综合指南
  • 2025最新软件测试面试八股文【附文档】
  • 基于动态增强的 LLM 置信度方法研究
  • 存储引擎 RocksDB
  • 速通python加密之SHA加密
  • MySQL进阶学习与初阶复习第三天
  • AWD的攻击和防御手段
  • 在 C# 中,问号 ? 的一些作用
  • 0.深度学习环境配置步骤
  • 前端开发 Vue 结合Sentry 实现性能监控
  • GitHub的免费账户的存储空间有多少?
  • 明辨 JS 中 prototype 与 __proto__
  • 学习嵌入式的第三十天-数据结构-(2025.7.21)网络编程
  • Netty中AbstractChannelHandlerContext源码分析
  • Springboot+MongoDB简单使用示例
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频语义理解与智能检索进阶(365)
  • MySQL 中 VARCHAR(50) 和 VARCHAR(500) 的区别
  • Python训练Day24