Nginx中部署多个前端项目——区分路径

1.方案思路:

使用不同的端口号部署不同的项目,或者使用不同路径

这个方案不需要开放额外端口,更省事

2.初始化项目:

将打包好的前端文件传输到Linux中的var/www/路径下面:

3. 清理旧的端口配置

bash 复制代码
sudo rm -f /etc/nginx/conf.d/firework.conf
sudo rm -f /etc/nginx/conf.d/fireworks.conf
sudo rm -f /etc/nginx/sites-enabled/fireworks.conf
sudo rm -f /etc/nginx/sites-available/fireworks.conf

4.确认三个项目的文件都在

bash 复制代码
ls /var/www/fuel-frontend/index.html      # Vue 项目
ls /var/www/fireworks/index.html          # 烟花
ls /var/www/muran-birthday/index.html     # 周岁烟花秀

如果有目录不存在,先创建并上传文件:

复制代码
sudo mkdir -p /var/www/fireworks
sudo mkdir -p /var/www/muran-birthday

5.替换为统一配置

把 fuel-frontend 的旧配置和所有项目合并到一个文件里:

bash 复制代码
# 先删掉旧的 fuel-frontend 配置(不管是 conf.d 还是 sites-enabled 里的)
sudo rm -f /etc/nginx/conf.d/fuel-frontend.conf
sudo rm -f /etc/nginx/sites-enabled/fuel-frontend.conf

# 创建统一配置文件
cat | sudo tee /etc/nginx/conf.d/multi-sites.conf << 'EOF'
server {
    listen 80;
    server_name 【你的云服务器Ip】;

    # 项目 1:fuel-frontend(根路径)
    location / {
        root /var/www/fuel-frontend;
        try_files $uri $uri/ /index.html;
    }

    # 项目 2:fireworks(烟花)
    location /fireworks/ {
        alias /var/www/fireworks/;
        try_files $uri $uri/ /fireworks/index.html;
    }

    # 项目 3:muran-birthday(周岁烟花秀)
    location /birthday/ {
        alias /var/www/muran-birthday/;
        try_files $uri $uri/ /birthday/index.html;
    }

    # API 代理(fuel-frontend 后端接口)
    location /api/ {
        proxy_pass http://127.0.0.1:8080;
        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 X-Forwarded-Proto $scheme;
    }
}
EOF

6.设置权限

bash 复制代码
sudo chown -R www-data:www-data /var/www/fireworks /var/www/muran-birthday
sudo chmod -R 755 /var/www/fireworks /var/www/muran-birthday

7.校验 + 重载

bash 复制代码
sudo nginx -t && sudo nginx -s reload

看到 syntax is oktest is successful 就通过了。

8.验证

bash 复制代码
# 逐个测试
curl -I http://127.0.0.1/                    # fuel-frontend
curl -I http://127.0.0.1/fireworks/          # 烟花
curl -I http://127.0.0.1/birthday/           # 周岁烟花秀

三个都返回 200 OK 就成功了。手机浏览器访问

注意事项

  1. fuel-frontend 是 Vue 项目 :它部署在根路径 /vite.config.tsbase: '/' 不用改,没问题。

  2. fireworks 和 muran-birthday 是纯 HTML 单文件:没有外部资源依赖(CSS/JS 都内联),子路径部署不会有资源 404 问题,直接能用。

  3. 如果以后 Vue 项目也要部署到子路径 (比如 /admin/),那 vite 的 base 必须改成 /admin/,否则资源会 404 白屏。

  4. 不用开放额外端口:全部走 80 端口,阿里云安全组不用动。

相关推荐
en.en..6 小时前
Linux 孤儿进程与僵尸进程
linux·运维·服务器
mldong9 小时前
你的 Vue3 项目也能有钉钉同款审批流设计器:npm 装包,10 分钟画出第一条审批流
前端·vue.js
2分钟速写快排10 小时前
什么是 RAG?如何用 RAG 实现一个用户记忆?
前端·后端·ai编程
passerby606110 小时前
如何自己造一个时间处理库
前端·javascript·github
T1mzhou11 小时前
ARM64 Linux 6.10内核启动流程7-ioremap和readl writel
linux·服务器·c语言
走到天涯海角11 小时前
react里面的长列表渲染优化
前端·react.js·前端框架
小羊没烦恼!12 小时前
Hello Web API系列教程——Web API与国际化
java·服务器·前端·javascript·php
北岛贰12 小时前
迷茫焦虑期,我做了一个带支付带官网的 AI 聊天虚拟恋人 App
前端·人工智能·后端
Cx330❀12 小时前
【Linux网络】网络层协议 IP :从网络层原理到 Linux 内核源码
linux·运维·服务器·网络·tcp/ip·ai·ai编程