nginx原始碼分析(14) 運維與配置(2)

2021-06-09 12:35:57 字數 2022 閱讀 3923

事件模組的指令集主要是配置epoll、kqueue、select、poll等,這些指令控制nginx處理連線的方式,這些指令有:

1、accept_mutex

語法形式:accept_mutex [on|off]

預設值:on

nginx使用accept mutex保護accept()系統呼叫。accept mutex在不同的系統上會使用原子指令實現或者使用檔案上鎖實現。

2、accept_mutex_delay

語法形式:accept_mutex_delay nms;

預設值:500ms

如果乙個worker程序未擁有accept mutex,它至少延遲這麼長時間之後再嘗試搶奪。

3、debug_connection

語法形式:debug_connecton [ip|cidr]

預設值:none

自從0.3.54這個選項支援cidr位址格式,這個選項控制來自於該ip或者net的客戶端才寫debug log。例如:

error_log /var/log/nginx/errors;

events

4、devpoll_changes

語法形式:devpoll_changes number

預設值:32

使用devpoll_changes方式,設定可以與核心之間傳遞事件的數量。

5、devpoll_events

語法形式:devpoll_events number

預設值:32

使用devpoll_events方式,設定可以與核心之間傳遞事件的數量。

6、kqueue_changes

語法形式:kquue_changes number

預設值:512

使用kequeue_changes方式,設定可以與核心之間傳遞事件的數量。

7、kqueue_events

語法形式:kquue_events number

預設值:512

使用kequeue_events方式,設定可以與核心之間傳遞事件的數量。

8、epoll_events

語法形式:epoll_events number

預設值:512

使用epoll_events方式,設定可以與核心之間傳遞事件的數量。

9、multi_accept

語法形式:multi_accept [on|off]

預設值:off

設定了該選項,當nginx收到新連線的通知,accept()會嘗試返回盡量多的連線請求。

10、rtsig_signo

11、rtsig_overflow_events

12、rtsig_overflow_test

13、rtsig_overflow_threshold

這幾個指令是使用訊號驅動io方式事件模型的配置項,在linux系統一般使用epoll,這裡就不詳細解釋了。

14、use

語法形式:use [kqueue|rtsig|epoll|/dev/poll|select|poll|eventport]

預設值:

使用事件模型。一般在./configure指令碼執行的時候nginx會根據當前作業系統情況選擇合適的事件模型,如果你確定你的系統上有幾種事件模型,可以使用這個指令更改事件模型。

15、worker_connections

語法形式:worker_connections number

預設值:

前面介紹過,可以計算出max_clients:

max_clients = worker_processes * worker_connections

不過在用作反向**的時候,max_clients = worker_processes * worker_connections/4,這是因為此時瀏覽器缺省會開啟兩條到server的連線,nginx又會使用兩個檔案描述字連線到後端服務。

至此,nginx的核心模組配置(core模組和event模組)就介紹完了,而nginx配置的靈活與強大體現在http模組的配置中,這一部分又可以分成二十多個不同的模組,go on.

nginx 原始碼分析

近期準備研究一下nginx原始碼,此處記錄一下。計畫 1 了解evan miller 的文章 2 了解nginx的組織架構 3 了解nginx的基本資料結構 4 熟悉nginx的主要module及執行機制,主要是core http event os 5 簡單的module開發及測試 一 準備 為了方...

nginx原始碼分析 從原始碼看nginx框架總結

nginx原始碼總結 1 中沒有特別繞特別彆扭的編碼實現,從變數的定義呼叫函式的實現封裝,都非常恰當,比如從函式命名或者變數命名就可以看出來定義的大體意義,函式的基本功能,再好的架構實現在編碼習慣差的人實現也會黯然失色,如果透徹理解 的實現,領悟架構的設計初衷,覺得每塊 就想經過耐心雕琢一樣,不僅僅...

Nginx原始碼分析 nginx安裝與配置

os ubuntu 16.04 apt get install nginx 原始碼安裝 apt get install openssl libssl dev apt get install libpcre3 libpcre3 dev apt get install zlib1g dev 安裝 tar...