nginx 記錄的一些
- 1、正則表示式匹配
- 區分大小寫匹配
~* 不區分大小寫匹配
!和!*分別為區分大小寫不匹配及不區分大小寫不匹配
^ 以什麼開頭的匹配
$ 以什麼結尾的匹配
轉義字元。可以轉. * ?等
- 代表任意字元
2、檔案及目錄匹配
-f和!-f用來判斷是否存在檔案
-d和!-d用來判斷是否存在目錄
-e和!-e用來判斷是否存在檔案或目錄
-x和!-x用來判斷檔案是否可執行
3、location
4、限流模組
併發連結
limit_conn_zone $binary_remote_addr zone=addr:10m;
併發請求
limit_req_zone $binary_remote_addr zone=one:10m rate=2r/m;
併發請求先於併發連結
如:
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=one:10m rate=2r/m;
server {
server_name localhost;
#root html/;
#error_log logs/myerror.log info;
location /limit {
limit_conn_status 500;
limit_conn_log_level warn;
#limit_rate 50;
limit_conn addr 1;
limit_req zone=one burst=3 nodelay;
#limit_req zone=one;
}
}
5、重定向
rewrite語法格式及引數語法說明如下:
rewrite
關鍵字 正則 替代內容 flag標記
關鍵字:其中關鍵字error_log不能改變
正則:perl相容正則表示式語句進行規則匹配
替代內容:將正則匹配的內容替換成replacement
flag標記:rewrite支援的flag標記
flag標記說明:
last #本條規則匹配完成後,繼續向下匹配新的location URI規則
break #本條規則匹配完成即終止,不再匹配後面的任何規則
redirect #返回302臨時重定向,瀏覽器地址會顯示跳轉後的URL地址
permanent #返回301永久重定向,瀏覽器位址列會顯示跳轉後的URL地址
6、nginx熱升級
1、熱升級只是替換二進位制檔案
先備份當前版本的二進位制檔案
2、編譯新版本nginx二進位制檔案,並替換原來的二進位制檔案
3、傳送訊號 kill -USR2 pid
4、ps 檢視nginx程序 發現有兩個master程序
5、kill -WINCH nginx
7、日誌切割
reopen
8、Nginx stream模組,實現代理轉發
stream配置
stream {
server {
listen 2333;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass 192.168.1.20:3306;
}
}
9、upstream 配置
nginx有個預設引數,預設:fail_timeout為10s,max_fails為1次。 就會有10s的時間不可用
所以當超時有失敗是 會等待10s 才能重新訪問
如果發現後端異常,在單位週期為fail_timeout設定的時間,中達到max_fails次數,這個週期次數內,如果後端同一個節點不可用,那麼接將把節點標記為不可用,並等待下一個週期(同樣時常為fail_timeout)再一次去請求,判斷是否連線是否成功。如果成功,將恢復之前的輪詢方式,如果不可用將在下一個週期(fail_timeout)再試一次。