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

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

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

1.index

我的理解是默認路徑,也就是當找不到文件的時候的一個默認的路徑,可以配置多個。

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

2.location

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

[圖片上傳失敗...(image-142a00-1527905370923)]

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

如果我們這么設(shè)置,對于這一句的理解是。

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

當找到相對應(yīng)的文件,就會把你的訪問url變成。

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

這回你明白index了吧

回來我們再說 try_files

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

nginx 回去找有沒有 aa這個文件($uri) 如果沒有

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

重定向到 /index.php?$args

$args 就是你的url 問號后邊的參數(shù)

總結(jié):

nginx 獲取到url

1.找server_name

2.找locationpipei

如果沒有找index默認的文件

如果沒有直接404

有的話加上默認的index.* 重新尋找匹配的location

如果有進入執(zhí)行try_files

3.查找try_files 是否有相應(yīng)的文件

如果沒有直接重定向最后一項

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容