nginx中alias和root的區(qū)別詳解
很多同學第一次寫配置時,常常把這兩個混用,導致請求路徑解析錯誤,文件 404。本文就來詳細講解 root 與 alias 的區(qū)別,并通過案例幫你徹底搞懂。
1. 基本概念
root:將 請求路徑 拼接到root指定的目錄下。alias:將 location 匹配到的路徑前綴 替換為alias指定的目錄。
一句話總結: ?? root 是 拼接路徑,alias 是 路徑替換。
2.root示例
location /static/ {
root /var/www/html;
}
請求:
http://example.com/static/logo.png
Nginx 的解析過程:
root = /var/www/html location 匹配 /static/ 請求路徑 = /static/logo.png 最終文件路徑 = /var/www/html/static/logo.png
? 注意:/static/ 仍然會拼接到 root 后面。
3.alias示例
location /static/ {
alias /var/www/images/;
}
請求:
http://example.com/static/logo.png
Nginx 的解析過程:
alias = /var/www/images/ location 匹配 /static/ 去掉 /static/,剩下 /logo.png 最終文件路徑 = /var/www/images/logo.png
? 注意:/static/ 被完全替換成了 /var/www/images/。
4. 最常見的坑
很多人會這樣寫:
location /static/ {
root /var/www/images/;
}
然后請求:
http://example.com/static/logo.png
Nginx 實際解析:
最終路徑 = /var/www/images/static/logo.png ?
因為 root 會把 location 前綴 /static/ 拼接到后面。正確寫法應該是:
location /static/ {
alias /var/www/images/;
}
這樣路徑才是:
/var/www/images/logo.png ?
5. 對比總結
| 特性 | root | alias |
|---|---|---|
| 作用方式 | 拼接請求路徑 | 替換 location 前綴 |
| 最終路徑 | root + location + 請求剩余路徑 | alias + 請求去掉 location 部分 |
| 常見用途 | 整個站點的根目錄 | 單獨路徑映射到特殊目錄 |
| 常見錯誤 | 多拼一層目錄 | 忘記在路徑后加 / |
6. 推薦使用場景
適合用 root
配置整個站點根目錄:
server { root /var/www/html; location / { index index.html; } }
適合用 alias
配置子路徑資源映射:
location /static/ { alias /var/www/project/static/; }
7. 總結
root= 拼接路徑,常用于全局網站目錄。alias= 替換路徑,常用于某個子路徑單獨映射。- 如果要把
/static/URL 對應到/var/www/images/目錄,記得用 alias。 - 如果要整個站點都從
/var/www/html提供,記得用 root。
?? 口訣:
root 拼接,alias 替換。
到此這篇關于nginx中alias和root的區(qū)別詳解的文章就介紹到這了,更多相關nginx alias和root區(qū)別內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
利用Nginx_geo模塊實現(xiàn)CDN調度的配置方法
今天小編就為大家分享一篇利用Nginx_geo模塊實現(xiàn)CDN調度的配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
nginx正向代理http和https的實現(xiàn)步驟
本文主要介紹了nginx正向代理http和https的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07
解決Nginx啟動報錯Job for nginx.service failed
Nginx啟動報錯,需檢查配置文件是否正確(執(zhí)行nginx -t),若錯誤則修正并重載,若80端口被占用,查進程并終止,重啟服務以解決2025-08-08

