最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx Alias 指令替换目录路径如何配
时间:2026-08-07 11:01:49 编辑:袖梨 来源:一聚教程网
alias本质是路径前缀替换而非拼接,location与alias末尾斜杠必须严格对应:location /static/需配alias /data/assets/;配错则404或路径粘连;多location可独立映射跨目录资源。
Nginx 的 `alias` 指令本质是“路径前缀替换”,不是拼接,配对的关键在于 **location 匹配段和 alias 值的斜杠一致性**,以及明确被替换的部分。配错一个斜杠,就容易 404 或读到错误文件。location 和 alias 的斜杠必须严格对应
这是最常踩坑的地方。规则很简单:
- 如果 location 以 / 结尾(如
location /static/ { ... }),那么 alias 值也必须以 / 结尾(如alias /var/www/dist/static/;) - 如果 location 不带结尾 /(如
location /api),那它匹配的是精确路径,alias 可指向具体文件(如alias /var/www/maintenance.html;),但一般不推荐用于目录映射 -
错误示范:
location /static/ { alias /var/www/dist/static; }(缺末尾 /)→ 请求/static/js/app.js会去找/var/www/dist/staticjs/app.js(中间少了个 /)
理解 alias 是“去掉再拼”,不是“加在后面”
请求 URI 是 /static/css/main.css,配置如下:
location /static/ {alias /data/assets/;}
Nginx 执行过程:
- 匹配到
/static/,把它从 URI 中完整去掉 → 剩下css/main.css - 把剩下部分直接拼到
/data/assets/后面 → 最终路径是/data/assets/css/main.css
对比 root:同样 location /static/ + root /data/assets; → 实际找的是 /data/assets/static/css/main.css(多了 static 一级)
多级子路径映射要保证 location 精确匹配
比如 Vue 项目部署在 /admin/ 下,构建时设了 publicPath: "/admin/",静态资源实际放在 /var/www/admin/dist/:
location /admin/ {alias /var/www/admin/dist/;index index.html;try_files $request_filename $request_filename/ /admin/index.html;}
-
location /admin/匹配所有以/admin/开头的请求 -
alias把/admin/替换成/var/www/admin/dist/ -
try_files $request_filename是关键——它用的是 Nginx 已根据 alias 解析出的真实文件路径,不会绕回 root 去找
别和 root 混用,也别在 location / 里硬套 alias
alias 只能在 location 块里用,且不适合全局匹配:
-
location / { alias /var/www/html/; }是危险且无效的写法 —— 它会导致根路径下所有请求都被替换,连/favicon.ico都可能找不到 - 全站静态服务请用
root;只映射某一段路径(如/assets/、/docs/、/upload/)才用alias - 多个独立前端应用共存时,每个用独立的
location + alias,互不干扰,例如:/app1/ → /var/www/app1/dist/,/app2/ → /var/www/app2/dist/
相关文章
- 鹅鸭杀法医怎么玩 08-07
- 鸣潮拉海洛荣耀之丘无限万变流卡组怎么搭配 08-07
- 三角洲行动扩容箱如何搭配 08-07
- 四海兄弟故乡刀战怎么玩 08-07
- 王者元歌诡秘之主上线时间是什么时候 08-07
- DeepSeek入口在哪里 08-07