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-504.23.4.el6.x86_64 ([email protected]) 
(gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ) 
#1 SMP Tue Jun 9 20:57:37 UTC 2015


worker_connections 2000;

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


keepalive_timeout 60;

#keepalive超時時間。 這裏指的是http層面的keep-alive 並非tcp的keepalive  如果想了解詳情 請戳這裏 http://www.bubuko.com/infodetail-260176.html
裏面寫的很詳細 有興趣的可以去看一下


client_header_buffer_size 4k;

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

getconf PAGESIZE
輸入如下:

[xxxx nginx]# 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時間內一次沒被使用,它將被移除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章