1. 程式人生 > >nginx配置中的events詳解

nginx配置中的events詳解

nginx;events;

events模塊中包含nginx中所有處理連接的設置.

常用配置項如下
events{
use epoll;
worker_connections 20000;
client_header_buffer_size 4k;
open_file_cache max=2000 inactive=60s;
open_file_cache_valid 60s;
open_file_cache_min_uses 1;

詳細說明

use epoll;

#使用epoll的I/O 模型(值得註意的是如果你不知道Nginx該使用哪種輪詢方法的話,它會選擇一個最適合你操作系統的)

補充說明:

與apache相類,nginx針對不同的操作系統,有不同的事件模型

A)標準事件模型
Select、poll屬於標準事件模型,如果當前系統不存在更有效的方法,nginx會選擇select或poll
B)高效事件模型
Kqueue:使用於FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用雙處理器的MacOS X系統使用kqueue可能會造成內核崩潰。
Epoll:使用於Linux內核2.6版本及以後的系統。
/dev/poll:使用於Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。
Eventport:使用於Solaris 10. 為了防止出現內核崩潰的問題, 有必要安裝安全補丁

查看linux版本號可以使用 cat /proc/version命令

cat /proc/version
輸出如下

Linux version 2.6.32-431.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013

worker_connections 2000;

#工作進程的最大連接數量 理論上每臺nginx服務器的最大連接數為worker_processes*worker_connections worker_processes為我們再main中開啟的進程數

keepalive_timeout 60;

#keepalive超時時間。 這裏指的是http層面的keep-alive 並非tcp的keepalive

client_header_buffer_size 4k;

客戶端請求頭部的緩沖區大小,這個可以根據你的系統分頁大小來設置,一般一個請求頭的大小不會超過1k,不過由於一般系統分頁都要大於1k,所以這裏設置為系統分頁大小。查看系統分頁可以使用 getconf PAGESIZE命令

getconf PAGESIZE
輸入如下:
getconf PAGESIZE
4096

open_file_cache max=2000 inactive=60s;
為打開文件指定緩存,默認是沒有啟用的,max指定緩存最大數量,建議和打開文件數一致,inactive是指經過多長時間文件沒被請求後刪除緩存 打開文件最大數量為我們再main配置的worker_rlimit_nofile參數

open_file_cache_valid 60s;

這個是指多長時間檢查一次緩存的有效信息。如果有一個文件在inactive時間內一次沒被使用,它將被移除

open_file_cache_min_uses 1;

open_file_cache指令中的inactive參數時間內文件的最少使用次數,如果超過這個數字,文件描述符一直是在緩存中打開的,如果有一個文件在inactive時間內一次沒被使用,它將被移除。

nginx配置中的events詳解