nginx 中 index try_files location 這三個配置項的作用

來源:互聯網
上載者:User

一直在懵逼nginx 的路由配置,經過今天幾個小時的努力這次終於弄明白了。

如果有不對的地方,希望有前輩指出錯誤,讓我更上一層樓,也讓我別再錯誤的道路上越走越遠。

1.index

我的理解是預設路徑,也就是當找不到檔案的時候的一個預設的路徑,可以配置多個。

具體的用法稍後說,請先記住這個東西當你找不到其他合適的東西,預設給你分配的。

2.location

這個東西匹配你需要的路徑

server {
        listen 80;
        server_name localhost;


        root html/;
        index index.html index.htm index.php;
        location / {
            try_files $uri $uri/ /index.php?$args;
            proxy_pass http://www.baidu.com;
        }
        location ~ \.(html|htm)$ {
            try_files $uri = 404;
        }


        location ~ \.php$ {
            try_files $uri = 404;
            include fastcgi.conf;
            fastcgi_pass 127.0.0.1:9000;
        }
    }

你可以匹配你需要的所有的uri

想要具體瞭解的話。http://www.nginx.cn/115.html

3.try_files

這個東西是重新導向用的,我感覺和index 差不多,不過確實比index 要好用

舉個例子:

訪問:xf.com/aa

如果我們這麼設定,對於這一句的理解是。

try_files $uri $uri/ /index.php?$args;

當nginx 收到你的xf.com/aa ,那麼會匹配到 

location / {
            try_files $uri $uri/ /index.php?$args;
            proxy_pass http://www.baidu.com;
        }

這裡多說一嘴,如果沒有合適的匹配,那麼就會找index的值。

index.html inde.htm index.php

當找到相對應的檔案,就會把你的訪問url變成。

xf.com/index.html或者xf.com/index.htm  xf.com/index.php 其中一個

這回你明白index了吧

回來我們再說  try_files

當匹配到這項的時候,就開始執行try_files

nginx 回去找有沒有 aa這個檔案($uri) 如果沒有

繼續找aa這個目錄($uri/) 如果也沒有的話就直接

重新導向到   /index.php?$args    

$args 就是你的url 問號後邊的參數


總結:

nginx 擷取到url  

1.找server_name

2.找locationpipei

如果沒有找index預設的檔案

如果沒有直接404

有的話加上預設的index.* 重新尋找匹配的location

如果有進入執行try_files

3.尋找try_files 是否有相應的檔案

如果沒有直接重新導向最後一項

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.