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 ok 和 test 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.ts 里 base: '/' 不用改,没问题。

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

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

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

相关推荐
愿得一猪蹄9 分钟前
浏览器开发者工具隐藏技巧,你可能只用了一成
前端
高晶21 分钟前
ARM 嵌入式 Linux 内核编译与结构解析实战
前端·架构
今年下半年1 小时前
【前端】Vue2 项目 ECharts 统计图表组件封装与使用实践(附组件源码)
前端·javascript·echarts
西索斯coding1 小时前
在 中接入 教程:p配置、m填写、扩展思考参数一篇就够(2)
java·前端·javascript·ai
代码猎人1 小时前
前端怎么优化项目基础架构
前端
__sjfzllv___1 小时前
在职前端Leader学习/转行 AI Agent -DAY78
前端
代码猎人1 小时前
前端怎么封装工具类
前端
deli0071 小时前
PDF 合并别再用在线工具:12 份文件浏览器里合完,实测不上传
前端
shuoshuohaohao1 小时前
SpringBoot3-web开发-静态资源-内容协商
前端
kiros_wang1 小时前
RDB关系数据库实战:增删改查、事务、分页、版本迁移
前端