Nginx 之 全局配置段介紹

1  概述


Nginx的配置段不一樣,同一指令的用法不一樣。關於nginx更詳細的配置,可以查看官方幫助文檔http://nginx.org/en/docs/,本文將介紹全局配置段常見的配置指令


2  全局配置段 

Main 全局配置段常見的配置指令分類:

.正常運行必備的配置

.優化性能相關的配置

.用於調試及定位問題相關的配置

.事件驅動相關的配置

全局性的配置一般比較少改動,默認選項可以滿足一般的需求,可以根據實際情況進行調整

2.1  正常運行必備的配置

.1user

Syntax:user user [group];

例子:

 user nginx;

Default:user nobody nobody;

Context:main

指定worker進程的運行身份,如組不指定,默認和用戶名同名

.2pid  /PATH/TO/PID_FILE

指定存儲nginx主進程PID的文件路徑

pid /run/nginx.pid;

.3includefile | mask

指明包含進來的其它配置文件片斷

 例子:

include  /usr/share/nginx/modules/*.conf;

.4load_module  file

模塊加載配置文件:/usr/share/nginx/modules/*.conf

指明要裝載的動態模塊路徑: /usr/lib64/nginx/modules

2.2  性能優化相關的配置

.1worker_processes  number | auto

autonumber的區別

auto 是nginx根據系統當前的情況開啓進程數,模式是1個主進程,4個worker進程

number是人爲指定開啓進程數量,比如設置8,那麼總共是1個主進程,7個worker進程

這裏number不建議加太多,worker進程的個數通常應該爲當前主機的cpu的物理核心數,可以略少,因爲nginx是一個進程響應多個請求,不是線程處理。

.2worker_cpu_affinity  cpumask ...

worker_cpu_affinity  auto [cpumask] 提高緩存命中率,機器運行時,內核的數量只能增加不能減少,如果要減少內核數,需要停機才能設置

CPU MASK

000000010CPU

000000101CPU

100000008CPU

例子

假設有4個內核,那麼,內核的編號是0,1,2,3.設置如下,

 worker_cpu_affinity 0001 0010 1000 0100;

表示

第一個進程工作在0號內核

第二個進程工作在1號內核

第三個進程工作在3號內核

第四個進程工作在2號內核

如果這裏設置爲0000,則表示對應的進程不指定內核,隨機工作在某個內核上。

正常情況下,主進程是隨機工作在任意進程下的

進程具體工作在哪個內核,可以通過如下的命令進行查看

ps axo pid,cmd,psr,ni |grep nginx

.3worker_priority   number

指定worker進程的nice值,設定worker進程優先級:[-20,20],值越小,優先級越高

 .4worker_rlimit_nofile  number

worker進程所能夠打開的文件數量上限,65535

同時連接的數量受限於系統上可用的文件描述符的數量,因爲每個套接字將打開一個文件描述符。如果NGINX嘗試打開比可用文件描述符更多的套接字,會發現error.log中出現Too many opened files的信息。使用ulimit檢查文件描述符的數量:$ ulimit -n。現在,將此值增加到大於worker_processes *worker_connections的值。應該是增加當前worker運行用戶的最大文件打開數值。NGINX提供了worker_rlimit_nofile指令,這是除了ulimit的一種設置可用的描述符的方式。該指令與使用ulimit對用戶的設置是同樣的效果。此指令的值將覆蓋ulimit的值,如:

worker_rlimit_nofile 20960;

2.3  事件驅動相關的配置

event

語法如下

.events {

...

}

events放在主配置文件裏

.1worker_connections  number

每個worker進程所能夠打開的最大併發連接數數量,如10240

這個參數建議調大點,如果請求太多,導致客戶連接不上而已,不至於浪費了資源

總最大併發數:worker_processes* worker_connections

.2use method

指明併發連接請求的處理方法,默認自動選擇最優方法,爲epoll.

默認:useepoll;不需要配置

.3accept_mutex   on | off 互斥

處理新的連接請求的方法;on指由各個worker輪流處理新請求,off指每個新請求的到達都會通知(喚醒)所有的worker進程,但只有一個進程可獲得連接,造成驚羣,影響性能,默認on

2.4  調試和定位問題

.1daemon on|off

是否以守護進程方式運行nignx,默認是守護進程方式.如果是off就是前端運行。默認是守護進程on,爲後臺執行

.2master_process  on|off

是否以master/worker模型運行nginx;默認爲on,如果設置爲off 將不啓動worker進程,主要是開發環境使用,關閉後沒有worker進程,只有master提供服務。需要重啓nginx服務後生效

.3error_log  file [level]

錯誤日誌文件及其級別;出於調試需要,可設定爲debug;但debug僅在編譯時使用了“--with-debug”選項時纔有效

方式:file /path/logfile;

stderr:發送到標準錯誤

syslog:server-address[,parameter=values]:發送到syslogmemory:size內存
level:debug|info|notice|warn|error|crit|alter|emerg

 例子

error_log  /var/log/nginx/error.log;


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