在 Nginx 配置中,@admRouter 是一个命名的 location(named location),它在这里的作用是作为 fallback 路由,当所有静态文件尝试都失败后,将请求转发给后端的应用处理程序。
完整解析
nginx
复制
try_files $uri $uri/ @admRouter;
执行逻辑
表格
复制
| 1 | $uri | 尝试查找精确匹配的静态文件(如 /admin/user.js) |
| 2 | $uri/ | 尝试查找匹配的目录(如 /admin/ 目录) |
| 3 | @admRouter | 全部失败后,跳转到 @admRouter 处理 |
@admRouter 的典型定义
nginx
复制
server {
listen 80;
server_name admin.example.com;
root /var/www/admin/dist;
index index.html;
location / {
# 先尝试静态文件,找不到就交给 @admRouter
try_files $uri $uri/ @admRouter;
}
# 命名的 location,通常用于反向代理到后端
location @admRouter {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
@admRouter 常见用途
表格
复制
| SPA 单页应用 | Vue/React/Angular 项目,前端路由由后端处理或返回 index.html |
| 反向代理 | 将 API 请求或动态请求转发到后端服务(Node/Java/PHP 等) |
| URL 重写 | 统一入口处理,如 CMS、Admin 后台系统 |
对比:常见变体
nginx
复制
# 方式1:返回 index.html(纯前端路由)
try_files $uri $uri/ /index.html;
# 方式2:转发到后端处理(你的配置)
try_files $uri $uri/ @admRouter;
# 方式3:直接指定 proxy_pass
try_files $uri $uri/ =404;
你的场景推测
从命名 admRouter 来看,这很可能是:
-
Admin 后台系统的路由处理
-
用于处理 SPA 前端路由(如 /admin/users 这种路由需要返回 index.html 让前端路由接管)
-
或者将请求代理到后端 Admin 服务
总结:@admRouter 是一个命名 location,作为 try_files 的兜底方案,负责处理所有未匹配到静态文件的请求,通常用于反向代理或返回单页应用的入口文件。
网硕互联帮助中心




评论前必须登录!
注册