1. 程式人生 > 其它 >nginx 記錄的一些

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];
    關鍵字      正則        替代內容          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)再試一次。