1. 程式人生 > >nginx.conf中location和rewrite配置裡一些符號的含義

nginx.conf中location和rewrite配置裡一些符號的含義

nginx. conf 是 Nginx 預設的主配置檔案,所有功能的實現都與此檔案的配置相關。
配置檔案結構
開啟 nginx. conf 配置檔案,從整體結構可以看出,該配置檔案主要由以下幾部分組成。

main
events {...}
http {
    server {
        location {...}
    }
}


從上面的結構可以看出, Nginx 的預設主配置檔案主要由 main、 events、 http、 server 和 location 5 個塊組成 ,關於各個塊的作用,詳見表 1 所示 。 並且對於巢狀塊(如 http、 server、 location)中的指令,執行的順序為從外到內依次執行,內層塊中的大部分指令會自動 獲取外層塊指令的值作為預設值,只有某些特殊指令除外。

                                                                          表1 配置檔案結構

說明
main 主要控制 Nginx 子程序所屬的使用者和使用者組、派生子程序數、錯誤日誌位置與級別、 pid 位置、子程序優先順序、程序對應 CPU、程序能夠開啟的檔案描述符數目等
events 控制 Nginx 處理連線的方式
http Nginx 處理 http 請求的主要配置塊,大多數配置都在這裡面進行
server Nginx 中主機的配置塊,可用於配置多個虛擬主機
location server 中對應目錄級別的控制塊 ,可以有多個

location用於實現訪問控制的字首:

~      波浪線表示執行一個正則匹配,區分大小寫

~*    表示執行一個正則匹配,不區分大小寫

^~    ^~表示普通字元匹配,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄

=      進行普通字元精確匹配

rewrite功能就是,使用nginx提供的全域性變數或自己設定的變數,結合正則表示式和標誌位實現url重寫以及重定向.
rewrite 格式為: rewrite 規則 定向路徑 重寫型別;
規則可以是字串或者正則來表示想匹配的目標url
rewrite ^/(.*)$ /index.php/$1 last;意思就是講例如 

www.xx.com/abc/bcd 解析為www.xx.com/index.php/abc/bcd

last 表示完成rewrite,瀏覽器位址列URL地址不變還是顯示 www.xx.com/abc/bcd 且rewrite後的/index.php/abc/bcd 會重新進行location匹配.