nginx中root和alias指令的使用
1.基本信息
功能均為將url映射為文件路徑,返回靜態(tài)文件內(nèi)容
格式:
alias path root path
2.區(qū)別
- root會(huì)映射完整url,會(huì)將location匹配的部分,追加到path后面,即,root指定web的家目錄,在定義location的時(shí)候,文件的絕對(duì)路徑等于 root+location
- alias:定義路徑別名,會(huì)把訪問(wèn)的路徑重新定義到其指定的路徑,文檔映射的另一種機(jī)制
- alias會(huì)出現(xiàn)在location上下文中,root可以出現(xiàn)在http,server,location,if in location
- alias無(wú)默認(rèn)值,root默認(rèn)值為root html
3.示例
[root@centos8 conf.d]#cat /apps/nginx/conf.d/root_alias.conf server { server_name path.test.com; root /data/nginx; error_log logs/myerror.log info; location /root { root /data/nginx/html; # root指令會(huì)將 location 中的 /root 追加到 /data/nginx/html 路徑后面,所以路徑是:/data/nginx/html/root } location /alias { alias /data/nginx/html; # alias指令會(huì)使用 /data/nginx/html 替換掉 location 中定義的 /alias 路徑 } location ~ /root/(\w+\.txt) { root /data/nginx/html/first/$1; # 實(shí)際訪問(wèn)的是 /data/nginx/html/first/1.txt/root/1.txt } location ~ /alias/(\w+\.txt){ alias /data/nginx/html/first/$1; # alias指令會(huì)使用 /data/nginx/html/first/$1 替換掉 /alias/(\w+\.txt) } location /RealPath/ { alias /data/nginx/html/realpath/; return 200 '$request_filename:$document_root:$realpath_root\n'; } } [root@centos8 conf.d]# # 配置驗(yàn)證 [root@centos8 conf.d]#nginx -t nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok nginx: configuration file /apps/nginx/conf/nginx.conf test is successful [root@centos8 conf.d]# [root@centos8 conf.d]#nginx -s reload [root@centos8 conf.d]#mkdir /data/nginx/html/first -pv mkdir: created directory '/data/nginx/html' mkdir: created directory '/data/nginx/html/first' [root@centos8 conf.d]#echo "This index.html test page" > /data/nginx/html/index.html [root@centos8 conf.d]#echo "This is a 1.txt" > /data/nginx/html/first/1.txt [root@centos8 conf.d]#cat /data/nginx/html/first/1.txt This is a 1.txt [root@centos8 conf.d]#cat /data/nginx/html/index.html This index.html test page
測(cè)試1
[root@centos8 conf.d]#curl path.test.com/root/ <html> <head><title>404 Not Found</title></head> <body> <center><h1>404 Not Found</h1></center> <hr><center>nginx/1.18.0</center> </body> </html> [root@centos8 conf.d]# # 與第一個(gè)匹配 location /root # 因?yàn)槭莚oot指令,所以/data/nginx/html后面又加上了location中的root.因?yàn)楹竺嬗蟹葱备?所以加上了index.html # 所以實(shí)際訪問(wèn)的是 /data/nginx/html/root/index.html,而這個(gè)路徑是不存在的
測(cè)試2
[root@centos8 conf.d]#curl path.test.com/root/1.txt <html> <head><title>404 Not Found</title></head> <body> <center><h1>404 Not Found</h1></center> <hr><center>nginx/1.18.0</center> </body> </html> [root@centos8 conf.d]# # 與location ~ /root/(\w+\.txt) 匹配 # 因?yàn)槭莚oot指令,會(huì)在/data/nginx/html/first/1.txt,后面加上匹配到的root/1.txt # 實(shí)際訪問(wèn)的地址 /data/nginx/html/first/1.txt/root/1.txt,而這個(gè)路徑也是不存在的
測(cè)試3
[root@centos8 conf.d]#curl path.test.com/alias/ This index.html test page [root@centos8 conf.d]# # 匹配到了 location /alias 這個(gè)匹配項(xiàng) # alias 指令會(huì)使用 /data/nginx/html 替換掉 /alias,所以 訪問(wèn)了 /data/nginx/html/index.html 得到了默認(rèn)的首頁(yè)
測(cè)試4
[root@centos8 conf.d]#curl path.test.com/alias/1.txt This is a 1.txt [root@centos8 conf.d]# # 匹配到了 location ~ /alias/(\w+\.txt)這個(gè)匹配項(xiàng) # alias 指令會(huì)使用 /data/nginx/html/first/$1 替換掉 /alias/1.txt,所以訪問(wèn)到了/data/nginx/html/first/1.txt
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
keepalived+nginx實(shí)現(xiàn)網(wǎng)站高可用性
本文主要介紹了keepalived+nginx實(shí)現(xiàn)網(wǎng)站高可用性,包含配置Keepalived實(shí)現(xiàn)雙主熱備集群架構(gòu),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02Nginx解決history模式下頁(yè)面刷新404問(wèn)題示例
這篇文章主要為大家介紹了Nginx解決history模式下頁(yè)面刷新404問(wèn)題示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10使用Nginx服務(wù)器如何實(shí)現(xiàn)動(dòng)靜分離和反向代理
這篇文章主要介紹了使用Nginx服務(wù)器如何實(shí)現(xiàn)動(dòng)靜分離和反向代理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05詳解NGINX如何統(tǒng)計(jì)網(wǎng)站的PV、UV、獨(dú)立IP
做網(wǎng)站的都知道,平常經(jīng)常要查詢(xún)下網(wǎng)站PV、UV等網(wǎng)站的訪問(wèn)數(shù)據(jù),這篇文章主要介紹了詳解NGINX如何統(tǒng)計(jì)網(wǎng)站的PV、UV、獨(dú)立IP ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05Nginx配置80端口訪問(wèn)8080及項(xiàng)目名地址方法解析
這篇文章主要介紹了Nginx配置80端口訪問(wèn)8080及項(xiàng)目名地址方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09nginx配置多個(gè)前端項(xiàng)目實(shí)現(xiàn)步驟
本文主要介紹了nginx配置多個(gè)前端項(xiàng)目實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03nginx如何設(shè)置多個(gè)靜態(tài)訪問(wèn)的文件夾
這篇文章主要介紹了nginx如何設(shè)置多個(gè)靜態(tài)訪問(wèn)的文件夾問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03