nginx配置文件中location与root访问时的联系
在配置nginx時,由于之前沒有搞明白整個訪問資源時所走的路徑,總是會出現由于測試所寫的url與配置文件中的不統一,導致返回404的狀態碼。
對于nginx虛擬主機來訪問靜態資源:
?server{
?????????listen 80;
?????????server_name www.wzw.com;
?????????location /www {
?????????????????root /data/;
?????????????????index??index.html;
?????????}
}
這個配置表示輸入 www.wzw.com:80/www 時會訪問本機的/data/www/ 目錄
????server{
??????????listen 8080;
??????????server_name localhost;
??????????location ~ .*\.(gif|jpg|png)$ {
???????????????????root /www2;
??????????}
????}
這個配置表示輸入 localhost:8080/1.jpg時會訪問本機的/www2 目錄
總體而言:root后面的配置相當于把瀏覽器中的輸入路徑進行了重指。而且在輸入路徑中一定要寫上?
????????????????location后面所配置的路徑??
————————————————————————————————————————————————————————————————
nginx root?和 alias?配置區別
nginx指定文件路徑有兩種方式root和alias,這兩者的用法區別,使用方法總結了下,方便大家在應用過程中,快速響應。root與alias主要區別在于nginx如何解釋location后面的uri,這會使兩者分別以不同的方式將請求映射到服務器文件上。
[root]
語法:root path
默認值:root html
配置段:http、server、location、if
[alias]
語法:alias path
配置段:location
實例:
location ~ ^/weblogs/ {
?root /data/weblogs/www.ttlsa.com;
?autoindex on;
?auth_basic??????????? "Restricted";
?auth_basic_user_file? passwd/weblogs;
}
?
如果一個請求的URI是/weblogs/httplogs/www.ttlsa.com-access.log時,web服務器將會返回服務器上的/data/weblogs/www.ttlsa.com/weblogs/httplogs/www.ttlsa.com-access.log的文件。
root會根據完整的URI請求來映射,也就是/path/uri。
因此,前面的請求映射為path/weblogs/httplogs/www.ttlsa.com-access.log。
location ^~ /binapp/ {?
?limit_conn limit 4;
?limit_rate 200k;
?internal;?
?alias /data/statics/bin/apps/;
}
?
alias會把location后面配置的路徑丟棄掉,把當前匹配到的目錄指向到指定的目錄。如果一個請求的URI是/binapp/a.ttlsa.com/favicon時,web服務器將會返回服務器上的/data/statics/bin/apps/a.ttlsa.com/favicon.jgp的文件。
[warning]
1.?使用alias時,目錄名后面一定要加"/"。
2. alias可以指定任何名稱。
3. alias在使用正則匹配時,必須捕捉要匹配的內容并在指定的內容處使用。
4. alias只能位于location塊中。
?
一般情況下,在location /中配置root,在location /other中配置alias。
?
?
總結
以上是生活随笔為你收集整理的nginx配置文件中location与root访问时的联系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: /dev/null 2>1 详解
- 下一篇: Oracle的AWR报告分析