Nginx常用配置引數

2021-09-12 21:29:49 字數 3022 閱讀 2154

nginx配置檔案

main # 全域性設定

user 使用者,以及使用者組

worker_process nginx開啟的子程序的數量,和cpu數量一致

error_log

pid 程序id 儲存檔案位置

worker_rlimit_notify 1024 指定nginx乙個程序可以開啟的最多檔案描述符數量。

events 

use nginx支援的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。其中select和poll都是標準的工作模式,kqueue和epoll是*高效的工作模式*,不同的是epoll用在linux平台上,而kqueue用在bsd系統中,

worker_connections 用於定義nginx每個程序的最大連線數,即接收前端的最大請求數,預設是1024

http 

server

}include 用來設定檔案的mime型別,型別在配置檔案目錄下的mime.type檔案定義,來告訴nginx來識別檔案型別。

log_format 用於設定日誌的格式,和記錄哪些引數,這裡設定為main,剛好用於access_log來紀錄這種型別。

sendfile 用於開啟高效檔案傳輸模式。

tcp_nopush tcp_nodelay 兩個指令設定為on用於防止網路阻塞。

keepalive_timeout 設定客戶端連線保持活動的超時時間。在超過這個時間之後,伺服器會關閉該連線。

upstream iyangyi.com

upstream 模組負責負載均衡模組,通過乙個簡單的排程演算法來實現客戶端ip到後端伺服器的負載均衡。先學習怎麼用,具體的使用例項以後再說。

nginx的負載均衡模組目前支援4種排程演算法:

1. weight 輪詢(預設)。每個請求按時間順序逐一分配到不同的後端伺服器,如果後端某台伺服器宕機,故障系統被自動剔除,使使用者訪問不受影響。weight。指定輪詢權值,weight值越大,分配到的訪問機率越高,主要用於後端每個伺服器效能不均的情況下。

2. ip_hash。每個請求按訪問ip的hash結果分配,這樣來自同乙個ip的訪客固定訪問乙個後端伺服器,有效解決了動態網頁存在的session共享問題。

4. url_hash(第三方)。按訪問url的hash結果來分配請求,使每個url定向到同乙個後端伺服器,可以進一步提高後端快取伺服器的效率。nginx本身是不支援url_hash的,如果需要使用這種排程演算法,必須安裝nginx的hash軟體包

down,表示當前的server暫時不參與負載均衡。

backup,預留的備份機器。當其他所有的非backup機器出現故障或者忙的時候,才會請求backup機器,因此這台機器的壓力最輕。

max_fails,允許請求失敗的次數,預設為1。當超過最大次數時,返回proxy_next_upstream 模組定義的錯誤。

fail_timeout,在經歷了max_fails次失敗後,暫停服務的時間。max_fails可以和fail_timeout一起使用。

proxy_cache_path  /data/nginx/cache/one  levels=1      keys_zone=one:10m;

proxy_cache_path /data/nginx/cache/two levels=2:2 keys_zone=two:100m;

proxy_cache_path /data/nginx/cache/three levels=1:1:2 keys_zone=three:1000m;

靜態頁可以使用nginx的反向**快取功能,規則就是當前訪問的url,hash 加密後去指定的目錄查詢,如果有就匹配到快取

path 用於快取在磁碟的路徑位址

levels 用於指定快取資料夾的級數,最多3級

現在根據請求位址localhost/index.php?a=4 用md5進行雜湊,得到e0bd86606797639426a92306b1b98ad9

levels=1:2 表示建立2級目錄,把hash最後1位(9)拿出建乙個目錄,然後再把9前面的2位(ad)拿來建乙個目錄, 那麼快取檔案的路徑就是/data/nginx/cache/9/ad/e0bd86606797639426a92306b1b98ad9

以此類推:levels=1:1:2表示建立3級目錄,把hash最後1位(9)拿出建乙個目錄,然後再把9前面的1位(d)建乙個目錄, 最後把d前面的2位(8a)拿出來建乙個目錄 那麼快取檔案的路徑就是/data/nginx/cache/9/d/8a/e0bd86606797639426a92306b1b98ad9

keys_zone 所有活動的key和元資料儲存在共享的記憶體池中,這個區域用keys_zone引數指定

inactive 表示指定的時間內快取的資料沒有被請求則被刪除,預設inactive為10分鐘。inactive=1d 1天。inactive=30m 30分鐘

clean_time 表示每間隔自動清除的時間。clean_time=1m 1分鐘清除一次快取。

nginx配置引數

執行使用者 user www www 工作執行緒 worker processes 5 錯誤日誌 debug模式 error log logs error.log debug 記錄nginx主程序的id pid logs nginx.pid events 客戶端 header 請求超時時間 clie...

Nginx常用引數

access log var log nginx access.log main 引數 解釋log format 可定義多種日誌格式,取不同名稱即可 access log 用來指定日誌檔案的路徑及使用那種日誌格式 log format 指令只能配置在 http塊 中。access log 指令可以配...

nginx 配置引數優化

nginx作為高效能web伺服器,即使不特意調整配置引數也可以處理大量的併發請求。以下的配置引數是借鑑網上的一些調優引數,僅作為參考,不見得適於你的線上業務。worker程序 該引數表示啟動幾個工作程序,建議和本機cpu核數保持一致,每一核cpu處理乙個程序。它表示nginx最大可用的檔案描述符個數...