如何设置Linux上的Nginx作为静态资源服务器?Root与Alias配置有何不同?
- 内容介绍
- 文章标签
- 相关推荐
本文共计944个文字,预计阅读时间需要4分钟。
使用 `root` 时,Nginx 会将请求的完整 URI(包括 `location` 匹配的部分)直接拼接到你指定的目录后面。例如:
location /static/ { root /var/www/html; }
用户访问 /static/logo.png,Nginx 实际查找的是 /var/www/html/static/logo.png —— 注意中间多了一个 static/。
-
root值末尾加不加/都行,Nginx 自动处理 - 必须确保文件系统里真有
/var/www/html/static/这个子目录,否则 404 - 适合 URL 路径和磁盘目录结构严格对齐的场景,比如整站部署在
/var/www/html,子路径就是子目录 - 不能用于正则
location中的路径替换(会出错或行为不可控)
alias 指令:路径替换,末尾斜杠是硬性要求
alias 不是拼接,是“砍掉匹配的 location 前缀,换成你给的路径”。比如:
location /static/ { alias /data/assets/; }
用户访问 /static/logo.png,Nginx 查找的是 /data/assets/logo.png —— /static/ 被完全替换了。
本文共计944个文字,预计阅读时间需要4分钟。
使用 `root` 时,Nginx 会将请求的完整 URI(包括 `location` 匹配的部分)直接拼接到你指定的目录后面。例如:
location /static/ { root /var/www/html; }
用户访问 /static/logo.png,Nginx 实际查找的是 /var/www/html/static/logo.png —— 注意中间多了一个 static/。
-
root值末尾加不加/都行,Nginx 自动处理 - 必须确保文件系统里真有
/var/www/html/static/这个子目录,否则 404 - 适合 URL 路径和磁盘目录结构严格对齐的场景,比如整站部署在
/var/www/html,子路径就是子目录 - 不能用于正则
location中的路径替换(会出错或行为不可控)
alias 指令:路径替换,末尾斜杠是硬性要求
alias 不是拼接,是“砍掉匹配的 location 前缀,换成你给的路径”。比如:
location /static/ { alias /data/assets/; }
用户访问 /static/logo.png,Nginx 查找的是 /data/assets/logo.png —— /static/ 被完全替换了。

