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;意思就是講例如
last 表示完成rewrite,瀏覽器位址列URL地址不變還是顯示 www.xx.com/abc/bcd 且rewrite後的/index.php/abc/bcd 會重新進行location匹配.