首頁 > nginx > nginx的location、root、alias指令用法和區別

nginx的location、root、alias指令用法和區別

2017年4月4日 發表評論 閱讀評論

nginx指定文件路徑有兩種方式root和alias,指令的使用方法和作用域:
[root]
語法:root path
默認值:root html
配置段:http、server、location、if
[alias]
語法:alias path
配置段:location

root與alias主要區別在于nginx如何解釋location后面的uri,這會使兩者分別以不同的方式將請求映射到服務器文件上。
root的處理結果是:root路徑+location路徑
alias的處理結果是:使用alias路徑替換location路徑
alias是一個目錄別名的定義,root則是最上層目錄的定義。
還有一個重要的區別是alias后面必須要用“/”結束,否則會找不到文件的。。。而root則可有可無~~

root實例:

如果一個請求的URI是/t/a.html時,web服務器將會返回服務器上的/www/root/html/t/a.html的文件。

alias實例:

如果一個請求的URI是/t/a.html時,web服務器將會返回服務器上的/www/root/html/new_t/a.html的文件。注意這里是new_t,因為alias會把location后面配置的路徑丟棄掉,把當前匹配到的目錄指向到指定的目錄。

注意:
1. 使用alias時,目錄名后面一定要加"/"。
3. alias在使用正則匹配時,必須捕捉要匹配的內容并在指定的內容處使用。
4. alias只能位于location塊中。(root可以不放在location中)

掃碼聯系我

加我微信

除非注明,本站文章均為: nginx.cn原創,轉載請注明本文地址: http://www.oeatvy.tw/4658.html

--完--

分類: nginx 標簽:
  1. 2019年6月19日15:14 | #1

    使用alias時,目錄名后面一定要加"/"。

    這個說法不對。

    alias別名用于location路勁的完全替換。

    alias目錄后面帶不帶/ 需要跟location保持一致就可以。

    譬如:
    location /t {
    alias /www/root/html/new_t;
    }

  2. jupyter用戶
    2019年6月15日20:57 | #2

    重定向時怎么讓瀏覽器轉入正確的位置?
    比如,我有一個jupyter在localhost:8888, 于是我設置 location /jupyterserver1/ 位置為 proxy_pass https://localhost:8888/. 此時, 瀏覽器訪問 https://localhost/jupyterserver1/ 會被自動轉到 https://localhost/lab, 而不是 localhost/jupyterserver1/lab,此時 nginx 返回404

  3. ForeverLove
    2019年4月18日18:47 | #4

    學到了。一天之內使用搜索引擎搜索了兩個問題都看到了你寫的文章,覺得很奇妙

  4. ZERO SHENGZHONG XIE
    2018年4月2日13:55 | #5

    @shuiqiang
    官方文檔 ( ALIAS )沒有 (加或不加) SLASH 的警語,
    博主的資料,有參考什麼文獻嗎?

  5. shuiqiang
    2018年3月21日15:23 | #6

    好像不對吧,我在nginx官方文檔看到alias后面可以不加/的

  6. 2017年8月10日15:52 | #7

    博主,能否轉載到我的博客收藏?

  7. 2017年8月10日15:51 | #9

    學習用Ngnix做圖片服務器,遇到root和alias問題。學習了。

  8. 2017年6月7日12:02 | #10

    裝個反垃圾插件吧,評論區全是垃圾評論

  9. 2017年4月7日15:40 | #11

    學習了,nginx真的很強大

  1. 2018年12月12日23:15 | #1

网球冠军