配置參數

user nginx nginx ;
Nginx用戶及組:用戶 組。window下不指定

worker_processes 8;
工作進程:數目。根據硬件調整,通常等於CPU數量或者2倍於CPU。

error_log  logs/error.log; 
error_log  logs/error.log  notice; 
error_log  logs/error.log  info; 

錯誤日誌:存放路徑。


pid logs/nginx.pid;
pid(進程標識符):存放路徑。

worker_rlimit_nofile 204800;
指定進程可以打開的最大描述符:數目。
這個指令是指當一個nginx進程打開的最多文件描述符數目,理論值應該是最多打開文件數(ulimit -n)與nginx進程數相除,但是nginx分配請求並不是那麼均勻,所以最好與ulimit -n 的值保持一致。
現在在linux 2.6內核下開啓文件打開數爲65535,worker_rlimit_nofile就相應應該填寫65535。
這是因爲nginx調度時分配請求到進程並不是那麼的均衡,所以假如填寫10240,總併發量達到3-4萬時就有進程可能超過10240了,這時會返回502錯誤。


events

{

    use epoll;

    使用epoll的I/O 模型。linux建議epoll,FreeBSD建議採用kqueue,window下不指定。

    補充說明:

    與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。 爲了防止出現內核崩潰的問題, 有必要安裝安全補丁。

    worker_connections 204800;

    沒個工作進程的最大連接數量。根據硬件調整,和前面工作進程配合起來用,儘量大,但是別把cpu跑到100%就行。每個進程允許的最多連接數,理論上每臺nginx服務器的最大連接數爲。worker_processes*worker_connections

    keepalive_timeout 60;
    keepalive超時時間。

 

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

分頁大小可以用命令getconf PAGESIZE 取得。
[root@web001 ~]# getconf PAGESIZE
    4096
    但也有client_header_buffer_size超過4k的情況,但是client_header_buffer_size該值必須設置爲“系統分頁大小”的整倍數。
 
    open_file_cache max=65535 inactive=60s;

    這個將爲打開文件指定緩存,默認是沒有啓用的,max指定緩存數量,建議和打開文件數一致,inactive是指經過多長時間文件沒被請求後刪除緩存。

    open_file_cache_valid 80s;
    這個是指多長時間檢查一次緩存的有效信息。

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

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