You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx路径路由配置异常:Angular应用无法按路径正确跳转

解决Nginx路由多Angular应用的问题

你的配置存在两个关键问题,导致所有请求都跳转到默认页面:

问题1:root路径配置错误

当设置location /admin时,root应该指向包含admin目录的上级路径,而非admin目录本身。当前配置中root /home/ubuntu/apps/admin/,会让Nginx尝试在/home/ubuntu/apps/admin/admin/下查找文件,这个路径不存在,因此触发默认页面。

问题2:try_files的回退路径缺少前缀

Angular是单页应用,刷新或直接访问子路由时需要回退到index.html,但你的try_files最后使用/index.html,会让Nginx去默认root路径(通常是/usr/share/nginx/html)找文件,而非对应应用的index.html。


修正后的完整配置

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name _;

    # 路由admin应用
    location /admin {
        root /home/ubuntu/apps/;  # 上级路径,Nginx会自动拼接为/home/ubuntu/apps/admin/
        index index.html;
        try_files $uri $uri/ /admin/index.html?$args;  # 回退路径带上/admin前缀
    }

    # 路由client应用
    location /client {
        root /home/ubuntu/apps/;  # 同理,指向包含client目录的上级路径
        index index.html;
        try_files $uri $uri/ /client/index.html?$args;  # 回退路径带上/client前缀
    }

    # 可选:处理根路径访问(比如跳转到client或返回404)
    location / {
        return 302 /client;  # 也可以设置为 return 404;
    }
}

验证步骤

  1. 检查配置语法是否合法:
    sudo nginx -t
    
  2. 重启Nginx使配置生效:
    sudo systemctl restart nginx
    
  3. 测试访问http://example.com/admin和http://example.com/client,应该能正常加载对应Angular应用。

内容的提问来源于stack exchange,提问作者Mensur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 23:50:30