nginx配置location?root簡(jiǎn)單方法記錄
前言
nginx指定文件路徑有兩種方式root和alias,root與alias主要區(qū)別在于nginx如何解釋location后面的uri,這會(huì)使兩者分別以不同的方式將請(qǐng)求映射到服務(wù)器文件上。
最基本的區(qū)別
alias 指定的目錄是準(zhǔn)確的,給location指定一個(gè)目錄。root 指定目錄的上級(jí)目錄,并且該上級(jí)目錄要含有l(wèi)ocatoin指定名稱的同名目錄。
以root方式設(shè)置資源路徑:
語法: root path;
配置塊: http、server、location、if
以alias 方式設(shè)置資源路徑
語法: alias path;
配置塊: location
Example:
location /img/ { alias /var/www/image/; } #若按照上述配置的話,則訪問/img/目錄里面的文件時(shí),ningx會(huì)自動(dòng)去/var/www/image/目錄找文件 location /img/ { root /var/www/image; } #若按照這種配置的話,則訪問/img/目錄下的文件時(shí),nginx會(huì)去/var/www/image/img/目錄下找文件
注意:
1.使用alias時(shí),目錄名后面一定要加”/“。
2.使用alias標(biāo)簽的目錄塊中不能使用rewrite的break。
3.alias在使用正則匹配時(shí),必須捕捉要匹配的內(nèi)容并在指定的內(nèi)容處使用。
4.alias只能位于location塊中
配置alias支持PHP fastcgi解析
location /app { alias /project/app/; index index.php; location ~ \.php$ { #方案一 fastcgi_pass 127.0.0.1:9100; fastcgi_index index.php; include fastcgi.conf; } } #location ~ /app/.+\.php$ { #方案二 # rewrite /app/(.+\.php) /$1 break; # include fastcgi.conf; # fastcgi_pass 127.0.0.1:9100; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /project/app/$fastcgi_script_name; #}
===============
nginx貌似沒有虛擬目錄的說法,因?yàn)樗緛砭褪峭晖耆鶕?jù)目錄來設(shè)計(jì)并工作的。
如果非要給nginx安上一個(gè)虛擬目錄的說法,那就只有alias標(biāo)簽比較“像”,干脆來說說alias標(biāo)簽和root標(biāo)簽的區(qū)別吧。
最基本的區(qū)別:alias指定的目錄是準(zhǔn)確的,root是指定目錄的上級(jí)目錄,并且該上級(jí)目錄要含有l(wèi)ocation指定名稱的同名目錄。另外,根據(jù)前文所述,使用alias標(biāo)簽的目錄塊中不能使用rewrite的break。
所以使用nginx設(shè)置root時(shí)要注意一個(gè)問題,就是如果該root設(shè)置的前端目錄不是根目錄,那么在寫root的絕對(duì)地址時(shí),要把前端目錄的部分省略掉。
我們用設(shè)置虛擬目錄指向的alias來和root比較一下就非常明顯了
location /abc/ { alias /home/html/abc/; }
在這段配置下,http://test/abc/a.html就指定的是 /home/html/abc/a.html。這段配置亦可改成
location /abc/ { root /home/html/;}
可以看到,使用root設(shè)置目錄的絕對(duì)路徑時(shí),少了/abc,也就是說,使用root來設(shè)置前端非根目錄時(shí),nginx會(huì)組合root和location的路徑,即 /home/html/abc/。
另外,使用alias時(shí)目錄名后面一定要加“/”
參考:
https://jasonhzy.github.io/2016/08/25/nginx-alias-root/
http://blog.csdn.net/21aspnet/article/details/6583335
到此這篇關(guān)于nginx配置location root的文章就介紹到這了,更多相關(guān)nginx配置location root內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx服務(wù)器對(duì)數(shù)據(jù)傳輸速度限制的基本配置方法講解
這篇文章主要介紹了Nginx服務(wù)器對(duì)數(shù)據(jù)傳輸速度限制的基本配置方法講解,包括第三方開發(fā)的限速模塊Nginx-limit-traffic-rate-module的使用介紹,需要的朋友可以參考下2016-01-01當(dāng) Nginx 出現(xiàn) 504 錯(cuò)誤的完美解決方法
Nginx是一款流行的Web服務(wù)器和反向代理服務(wù)器,但有時(shí)會(huì)遇到504網(wǎng)關(guān)超時(shí)錯(cuò)誤,這種錯(cuò)誤通常是由后端服務(wù)器響應(yīng)緩慢、Nginx配置不當(dāng)或網(wǎng)絡(luò)問題導(dǎo)致的,下面給大家分享Nginx 出現(xiàn) 504 錯(cuò)誤的完美解決方法,一起看看吧2024-09-09一個(gè)Nginx實(shí)現(xiàn)部署多個(gè)不同的項(xiàng)目方式
這篇文章主要介紹了一個(gè)Nginx實(shí)現(xiàn)部署多個(gè)不同的項(xiàng)目方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03Nginx列出目錄和文件并用密碼控制訪問權(quán)限配置方法
這篇文章主要介紹了Nginx列出目錄和文件并用密碼控制訪問權(quán)限配置方法,本文給出了詳細(xì)的安裝配置步驟,需要的朋友可以參考下2015-07-07Nginx服務(wù)500:Internal Server Error原因之一
這篇文章主要介紹了Nginx服務(wù)500:Internal Server Error原因之一,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05