開發者學堂課程【HTTP 代理系統第四課時:Nginx 使特殊用法】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址:
https://developer.aliyun.com/learning/course/803/detail/13875Nginx 特殊用法
目錄
1. Rewrite 規則
2. Nginx 的特殊用法
1. Rewrite規則
1.1 Rewrite 與Redirect 的差別
Rewrite 是為了讓URL 更加标準化、一緻化。Redirect 是為了讓通路從一個位址跳轉到另外一個位址。
Rewrite 不會修改位址欄顯示的URL;Redirect 會修改URL。
Redirect 會産生兩次HTTP 請求;Rewrite 隻産生一次HTTP 請求。
1.2 Nginx 和Rewrite 功能
Nginx 通過内置的ngx-http-rewrite-module 預設支援了Rewrite
Nginx 的幾個核心指令:if break rewrite
| If 指令
| Break 指令
| Return指令
| Rewrite 指令
- rewrite 指令可以完成請求的重寫
- regex 是用于比對的正規表達式
- replacement 是後續用于替換的位址
- flag 可以控制rewrite 規則,常用的flag 包括
1.last 終止繼續在本location 塊中處理接收到的URI,并将此處重寫的URi作為一個新的
2.URI,使用各location 塊進行處理
3.break 将此處重寫的URI 作為一個新的UR,在本塊中繼續進行處理。
4.redirect:将重寫後的URI傳回給用戶端,狀态代碼為302,指明是臨時重定向URI opermanent:将重寫後的URI傳回給用戶端,狀态代碼為301,指明是永久重定向URI
舉例:rewrite 規則-phpBB
舉例:rewrite 規則discuz
2.Nginx 特殊用法
| Nginx 日志格式