nginx工作原理、配置以及web服務(wù)器的資源請(qǐng)求過程

nginx簡(jiǎn)介

Nginx是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù)。Nginx是由俄羅斯的伊戈?duì)枴べ愃饕蜷_發(fā)的,第一個(gè)公開版本0.1.0于2004年10月10日。

源代碼以類BSD許可證的形式發(fā)布,因其穩(wěn)定性、豐富的功能集、簡(jiǎn)單的功能集、簡(jiǎn)單的配置文件和低級(jí)系統(tǒng)的消耗而聞名。2011年6月1日,nginx1.0.4發(fā)布

Nginx是一款輕量級(jí)的web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like協(xié)議下發(fā)行。其特點(diǎn)是內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好,中國大陸使用nginx網(wǎng)站用戶有:百度、騰訊、淘寶、京東等。

nginx的特性與優(yōu)點(diǎn)

nginx的特性

nginx是一個(gè)很牛的高性能Web和反向代理服務(wù)器,它具有很多非常優(yōu)越的特性:

  • 在高連接并發(fā)的情況下,nginx是Apache服務(wù)器不錯(cuò)的替代品,能夠支持高達(dá)50000個(gè)并發(fā)連接數(shù)的響應(yīng)
  • 使用epoll and kqueue作為開發(fā)模型
  • nginx作為負(fù)載均衡服務(wù)器:nginx既可在內(nèi)部直接支持和PHP程序?qū)ν膺M(jìn)行服務(wù),也可支持作為HTTP代理服務(wù)器對(duì)外進(jìn)行服務(wù)
  • nginx采用C進(jìn)行編寫,不論系統(tǒng)資源開銷還是CPU使用效率都比Perlbal要好很多
nginx的優(yōu)點(diǎn)
  • 高并發(fā)連接:官方測(cè)試能夠支撐5萬并發(fā)連接,在實(shí)際生產(chǎn)環(huán)境中跑到2-3萬并發(fā)連接數(shù)

  • 內(nèi)存消耗少:在3萬并發(fā)連接下,開啟的10個(gè)nginx進(jìn)程才消耗150M內(nèi)存(15M*10=150M)

  • 配置文件非常簡(jiǎn)單:風(fēng)格跟程序一樣通俗易懂

  • 成本低廉:nginx為開源軟件,可以免費(fèi)使用。而購買F5 BIG-IP、NetScaler等硬件負(fù)載均衡交換機(jī)則需要十多萬至幾十萬人民幣

  • 支持Rewrite重寫規(guī)則:能夠根據(jù)域名、URL的不同,將HTTP請(qǐng)求分到不同的后端服務(wù)器群組

  • 內(nèi)置的健康檢查功能:如果Nginx Proxy后端的某臺(tái)Web服務(wù)器宕機(jī)了,不會(huì)影響前端訪問

  • 節(jié)省帶寬:支持GZIP壓縮,可以添加瀏覽器本地緩存的Header頭

  • 穩(wěn)定性高:用于反向代理,宕機(jī)的概率微乎其微

  • 模塊化設(shè)計(jì):模塊可以動(dòng)態(tài)編譯

  • 外圍支持好:文檔全,二次開發(fā)和模塊較多

  • 支持熱部署:可以不停機(jī)重載配置文件

  • 支持事件驅(qū)動(dòng)、AIO(AsyncIO,異步IO)、mmap(Memory Map,內(nèi)存映射)等性能優(yōu)化

nginx工作原理

Nginx是由內(nèi)核和模塊組成。
Nginx本身做的工作實(shí)際很少,當(dāng)它接受到一個(gè)HTTP請(qǐng)求時(shí),它僅僅時(shí)通過查找配置文件將此次次請(qǐng)求映射到一個(gè)location block,而此location中所配置的各個(gè)指令則會(huì)啟動(dòng)不同的模塊去完成工作,因此模塊可以看做Nginx真正的勞動(dòng)工作者。通常一個(gè)location中的指令會(huì)涉及一個(gè)handler模塊和多個(gè)filter模塊(當(dāng)然,多個(gè)location可以復(fù)用同一個(gè)模塊)。handler模塊負(fù)責(zé)處理請(qǐng)求,完成響應(yīng)內(nèi)容的生成,而filter模塊對(duì)響應(yīng)內(nèi)容進(jìn)行處理。
Nginx的模塊從結(jié)構(gòu)上分為核心模塊、基礎(chǔ)模塊和第三方模塊

  • 核心模塊:HTTP模塊、EVENT模塊和MAIL模塊

  • 基礎(chǔ)模塊:HTTP Access模塊、HTTP FastCGI模塊、HTTP Proxy模塊和HTTP Rewrite模塊。

  • 第三方模塊:HTTP Upstream Request Hash模塊、Notice模塊和HTTP Access Key模塊。

Nginx的模塊從功能上分為如下三類:
  • Handlers(處理器模塊)。此類模塊直接處理請(qǐng)求,并進(jìn)行輸出內(nèi)容和修改headers信息操作。handlers處理器模塊一般只能有一個(gè)。

  • Fiters(過濾模塊)。此類模塊主要對(duì)其他處理器模塊輸出的內(nèi)容進(jìn)行修改操作,最后nginx輸出。

  • Proxies(代理類模塊)。此類模塊是nginx的HTTP Upstream之類的模塊,這些模塊主要與后端一些服務(wù)比如FastCGI等進(jìn)行交互,實(shí)現(xiàn)服務(wù)代理和負(fù)載均衡等功能。

#######nginx進(jìn)程架構(gòu)
nginx的進(jìn)程架構(gòu)
啟動(dòng)nginx時(shí),會(huì)啟動(dòng)一個(gè)master進(jìn)程,這個(gè)進(jìn)程不處理任何客戶端的請(qǐng)求,主要用來產(chǎn)生worker線程,一個(gè)worker線程用來處理n個(gè)request。
而worker線程的線程數(shù)可以根據(jù)自己的需求來進(jìn)行配置

[root@localhost conf]# pwd
/usr/local/nginx/conf
[root@localhost conf]# vim nginx.conf
3 worker_processes  1;  //這個(gè)地方就是用來設(shè)置worker進(jìn)程個(gè)數(shù)的
[root@localhost conf]# vim nginx.conf
3 worker_processes  3;

[root@localhost conf]# systemctl restart nginx.service 
[root@localhost conf]# ps -ef | grep nginx
root     119118      1  0 18:29 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx    119120 119118  0 18:29 ?        00:00:00 nginx: worker process
nginx    119121 119118  0 18:29 ?        00:00:00 nginx: worker process
nginx    119122 119118  0 18:29 ?        00:00:00 nginx: worker process

圖解:首先用戶通過http/https協(xié)議訪問nginx的主機(jī),這時(shí)nginx會(huì)啟動(dòng)一個(gè)master進(jìn)程,這個(gè)進(jìn)程,不處理客戶端的請(qǐng)求,而是生成worker線程(這里是一個(gè)負(fù)載均衡集群),通過worker線程來處理客戶端的請(qǐng)求,若用戶請(qǐng)求網(wǎng)站服務(wù),worker就會(huì)到web server這個(gè)服務(wù)集群提取對(duì)應(yīng)的資源給客戶端,同理,這個(gè)Application server可以用來訪問應(yīng)用服務(wù)器,Memcached緩存服務(wù)器,backup是后端的意思。


web服務(wù)器請(qǐng)求資源的過程

1.客戶端發(fā)起請(qǐng)求,然后與服務(wù)端建立tcp連接
2.服務(wù)器接收請(qǐng)求
3.進(jìn)行反向代理,然后服務(wù)器處理請(qǐng)求
4.查看訪問資源的類型(可能是本地的資源,也可能是通過NFS掛載的資源)
5.構(gòu)建響應(yīng)報(bào)文
6.通過網(wǎng)絡(luò)接口返回響應(yīng)報(bào)文給客戶端
7.服務(wù)端將本次的操作記錄到日志中

圖解:首先客戶端要與服務(wù)端建立連接(沒有連接就無法從服務(wù)端獲取想要的資源)我們?cè)L問的時(shí)候都是通過域名去訪問服務(wù)端的,而域名是可以通過DNS將IP解析成域名去訪問的,所以實(shí)際上是訪問的服務(wù)器的IP。
接收客戶端請(qǐng)求報(bào)文中記錄了對(duì)某資源的一次請(qǐng)求的過程;服務(wù)器對(duì)請(qǐng)求報(bào)文進(jìn)行解析,并獲取請(qǐng)求的資源及請(qǐng)求方法等相關(guān)信息,根據(jù)方法,資源,首部和可選的主體部分對(duì)請(qǐng)求進(jìn)行處理;處理完成個(gè)之后就去對(duì)象存儲(chǔ)里去取相應(yīng)的資源,取到之后構(gòu)建一個(gè)響應(yīng)報(bào)文;然后將客戶請(qǐng)求的資源進(jìn)行封裝,并通過網(wǎng)絡(luò)接口發(fā)送響應(yīng)報(bào)文,客戶端收到對(duì)應(yīng)的資源之后,web服務(wù)器會(huì)在日志文件中添加一個(gè)條目,來描述已執(zhí)行的事務(wù)。


單進(jìn)程I/O模型:?jiǎn)?dòng)一個(gè)進(jìn)程處理用戶請(qǐng)求,而且一次只處理一個(gè),多個(gè)請(qǐng)求被串行響應(yīng);
多進(jìn)程I/O模型:并行啟動(dòng)多個(gè)進(jìn)程,每個(gè)進(jìn)程響應(yīng)一個(gè)連接請(qǐng)求;
復(fù)用I/O結(jié)構(gòu):?jiǎn)?dòng)一個(gè)進(jìn)程,同時(shí)響應(yīng)N個(gè)連接請(qǐng)求
復(fù)用的多進(jìn)程I/O模型:?jiǎn)?dòng)x個(gè)進(jìn)程,每個(gè)進(jìn)程響應(yīng)y個(gè)連接請(qǐng)求,同時(shí)接收x*y個(gè)請(qǐng)求。

nginx的配置

nginx的編譯分為兩種:

  • 靜態(tài)編譯:靜態(tài)編譯就是編譯器在編譯可執(zhí)行文件的時(shí)候,將可執(zhí)行文件需要調(diào)用的對(duì)應(yīng)動(dòng)態(tài)鏈接庫(so)中的部分提取出來,鏈接到可執(zhí)行文件中去,使可執(zhí)行文件在運(yùn)行的時(shí)候不依賴于動(dòng)態(tài)鏈接庫,所以其優(yōu)缺點(diǎn)與動(dòng)態(tài)編譯的可執(zhí)行文件正好互補(bǔ)
  • 動(dòng)態(tài)編譯:動(dòng)態(tài)編譯的可執(zhí)行文件需要附帶一個(gè)的動(dòng)態(tài)鏈接庫,在執(zhí)行時(shí),需要調(diào)用其對(duì)應(yīng)動(dòng)態(tài)鏈接庫中的命令。

所以其優(yōu)點(diǎn)一方面是縮小了執(zhí)行文件本身的體積,另一方面是加快了編譯速度,節(jié)省了系統(tǒng)資源。

缺點(diǎn)是:哪怕是很簡(jiǎn)單的程序,只用到了鏈接庫中的一兩條命令,也需要附帶一個(gè)相對(duì)龐大的鏈接庫;二是如果其他計(jì)算機(jī)上沒有安裝對(duì)應(yīng)的運(yùn)行庫,則用動(dòng)態(tài)編譯的可執(zhí)行文件就不能運(yùn)行。

nginx的安裝與配置

下載nginx的源碼包
想要安裝不同的版本可以取官網(wǎng)下載:https://nginx.org/en/download.html

[root@localhost ~]# wget http://nginx.org/download/nginx-1.20.1.tar.gz

解決nginx的依賴

[root@localhost ~]# yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ zlib make

解壓nginx的tar包

[root@localhost ~]# tar -xzf nginx-1.20.1.tar.gz -C /usr/local

創(chuàng)建系統(tǒng)用戶

[root@localhost ~]# useradd -r -M -s /sbin/nologin nginx

創(chuàng)建日志存放目錄

[root@localhost ~]# mkdir -p /var/log/nginx
[root@localhost ~]# chown -R nginx.nginx /var/log/nginx

編譯安裝nginx

[root@localhost nginx-1.20.1]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-debug \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_image_filter_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log

[root@localhost nginx-1.20.1]# make && make install

配置nginx環(huán)境變量

[root@localhost ~]# echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh

[root@localhost ~]# source /etc/profile.d/nginx.sh

配置nginx的service文件使用systemctl控制nginx

[root@localhost system]# pwd
/usr/lib/systemd/system

[root@localhost system]# cat > nginx.service << EOF
[Unit]
Description=Nginx server daemon
After=network.target 

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx 
ExecStop=/usr/local/nginx/sbin/nginx -s quit
ExecReload=/bin/kill -HUP \$MAINPID

設(shè)置開機(jī)自啟

[root@localhost system]# systemctl enable --now nginx

nginx主目錄下各個(gè)目錄的作用

/usr/local/nginx/         #為服務(wù)安裝目錄,若你安裝在/opt目錄下則是/opt/nginx,根據(jù)你安裝的不同目錄也不同
/usr/local/nginx/sbin  #為服務(wù)主程序目錄
/usr/local/nginx/sbin/nginx  #為服務(wù)程序文件
/usr/local/nginx/modules/  #為模塊目錄
/usr/local/nginx/conf/  #為服務(wù)的配置文件目錄
/usr/local/nginx/html/  # 為服務(wù)網(wǎng)頁根目錄
/usr/local/nginx/conf/nginx.conf  #為服務(wù)配置文件
/usr/local/nginx/logs/  #為服務(wù)日志文件目錄
/usr/local/nginx/logs/nginx.pid  #服務(wù)pid文件
/usr/local/nginx/logs/error.log  #服務(wù)錯(cuò)誤日志文件
/usr/local/nginx/logs/access.log  #服務(wù)訪問日志文件

nginx服務(wù)命令

/usr/local/nginx/sbin/nginx 啟動(dòng)nginx
/usr/local/nginx/sbin/nginx -v  #查看nginx版本
/usr/local/nginx/sbin/nginx -V  #顯示除版本信息意外的其他配置參數(shù)信息
/usr/local/nginx/sbin/nginx -t  #檢查nginx配置文件是否正確
/usr/local/nginx/sbin/nginx -s reload  #重新加載nginx
/usr/local/nginx/sbin/nginx -s quit #正常關(guān)閉nginx,建議使用這種方式關(guān)閉nginx,這個(gè)是優(yōu)雅的關(guān)閉nginx
/usr/local/nginx/sbin/nginx -s stop  #快速關(guān)閉nginx
/usr/local/nginx/sbin/nginx -c //用來指定配置文件的路徑

nginx的配置文件詳解

主配置文件默認(rèn)位置:/usr/local/nginx/conf/nginx.conf //在不指定安裝路徑的情況下

  • 默認(rèn)啟動(dòng)nginx時(shí),使用的配置文件是:安裝路徑/conf/nginx.conf文件
  • 可以在啟動(dòng)nginx時(shí)通過-c選項(xiàng)來指定要讀取的配置文件

nginx常見的配置文件及其作用

配置文件 作用
nginx.conf nginx的基本配置文件
mime.types MIME類型關(guān)聯(lián)的擴(kuò)展文件
fastcgi.conf 與fastcgi相關(guān)的配置
proxy.conf 與proxy相關(guān)的配置
sites.conf 配置nginx提供的網(wǎng)站,包括虛擬主機(jī)

nginx.conf配置詳解

nginx.conf的內(nèi)容分為以下幾段:

  • main配置段:全局配置段。其中main配置段中可能包含event配置段
  • event {}:定義event模型工作特性
  • http {}:定義http協(xié)議相關(guān)的配置

配置指令的語法格式

derective value1 [value2 ...];

支持使用變量:

  • 內(nèi)置變量:模塊會(huì)提供內(nèi)建變量定義
  • 自定義變量:set var_name value

檢查nginx配置文件的語法cuowu

[root@localhost conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

查看nginx的版本信息

[root@localhost conf]# nginx -v
nginx version: nginx/1.20.1

[root@localhost conf]# nginx -V   //-V不僅能看到nginx的版本信息,還能看到編譯nginx時(shí)編譯了那些功能等信息
nginx version: nginx/1.20.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-debug --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log

使用nginx服務(wù)控制命令重啟并指定配置文件路徑

[root@localhost conf]# pwd
/usr/local/nginx/conf

[root@localhost conf]# cp nginx.conf mime.types /opt/
[root@localhost conf]# cd /opt/
[root@localhost opt]# ls
mime.types  nginx.conf  nginx.sh  packages
 
[root@localhost opt]# head -3 nginx.conf 

#user  nobody;
worker_processes  1;

[root@localhost opt]# nginx -s quit ; nginx -c /usr/local/nginx/conf/nginx.conf

[root@localhost opt]# head -3 /usr/local/nginx/conf/nginx.conf

#user  nobody;
worker_processes  3;

[root@localhost opt]# ps -ef | grep nginx
root      42776      1  0 11:00 ?        00:00:00 nginx: master process nginx -c /usr/local/nginx/conf/nginx.conf
nginx     42777  42776  0 11:00 ?        00:00:00 nginx: worker process
nginx     42778  42776  0 11:00 ?        00:00:00 nginx: worker process
nginx     42779  42776  0 11:00 ?        00:00:00 nginx: worker process
root      43003   1358  0 11:00 pts/0    00:00:00 grep --color=auto nginx

[root@localhost opt]# nginx -s quit ; nginx -c /opt/nginx.conf
[root@localhost opt]# ps -ef | grep nginx
root      45058      1  0 11:02 ?        00:00:00 nginx: master process nginx -c /opt/nginx.conf
nginx     45059  45058  0 11:02 ?        00:00:00 nginx: worker process
root      45134   1358  0 11:02 pts/0    00:00:00 grep --color=auto nginx
用于調(diào)試,定位問題的配置參數(shù)

是否以守護(hù)進(jìn)程方式運(yùn)行Nginx
守護(hù)進(jìn)程(daemon)是脫離終端并且在后臺(tái)運(yùn)行的進(jìn)程。它脫離終端是為了避免進(jìn)程執(zhí)行過程中的信息在任何終端上顯示,這樣一來,進(jìn)程也不會(huì)被任何終端所產(chǎn)生的信息所打斷。Nginx毫無疑問是一個(gè)需要以守護(hù)進(jìn)程方式運(yùn)行的服務(wù),因此,默認(rèn)都是以這種方式運(yùn)行的。

不過Nginx還是提供了關(guān)閉守護(hù)進(jìn)程的模式,之所以提供這種模式,是為了方便跟蹤調(diào)試Nginx,畢竟用gdb調(diào)試進(jìn)程時(shí)最煩瑣的就是如何繼續(xù)跟進(jìn)fork出的子進(jìn)程了。

daemon {on|off};    //是否以守護(hù)進(jìn)程方式運(yùn)行nginx,調(diào)試時(shí)應(yīng)設(shè)置為off
master_process {on|off};    //是否以master/worker模型來運(yùn)行nginx,調(diào)試時(shí)可以設(shè)置為off
error_log 位置 級(jí)別;    //配置錯(cuò)誤日志

用法:
Syntax: daemon on | off;   //語法
Default: daemon on;        //默認(rèn)值
Context:    main           //可以配置在那個(gè)字段中
[root@localhost conf]# head -4 nginx.conf

#user  nobody;
worker_processes  3;
daemon off

[root@localhost conf]# systemctl restart nginx.service
// 此時(shí)nginx將不會(huì)以守護(hù)進(jìn)程的方式運(yùn)行,會(huì)一直占據(jù)著前臺(tái)屏幕  

master_process {on|off}; //是否以master/worker模型來運(yùn)行nginx,調(diào)試時(shí)可以設(shè)置為off

//用法
Syntax: master_process on | off;
Default:  master_process on;
Context:  main

// nginx默認(rèn)是以master/worker模型來運(yùn)行
[root@localhost opt]# head -4 nginx.conf 

#user  nobody;
worker_processes  1;
master_process off;

//重新讀取nginx配置文件
[root@localhost opt]# systemctl stop nginx.service ; nginx -c /opt/nginx.conf 
[root@localhost opt]# ps -ef | grep nginx
root      13256      1  0 11:47 ?        00:00:00 nginx -c /opt/nginx.conf
root      13466   1358  0 11:47 pts/0    00:00:00 grep --color=auto nginx

error_log 位置 級(jí)別; //配置錯(cuò)誤日志

//用法,在不同的字段有不同的含義,比如在main字段寫就會(huì)對(duì)整個(gè)nginx產(chǎn)生影響,在http字段寫就會(huì)對(duì)某個(gè)網(wǎng)站產(chǎn)生影響

Syntax: error_log file [level];
Default: error_log logs/error.log error;
Context:  main, http, mail, stream, server, location

[root@localhost opt]# head -4 nginx.conf 

#user  nobody;
worker_processes  1;
error_log  logs/error.log;

重啟nginx服務(wù)讓配置文件生效
[root@localhost opt]# systemctl stop nginx; nginx -c /opt/nginx.conf

[root@localhost opt]# ls /usr/local/nginx/logs/
error.log  nginx.pid

[root@localhost opt]# ls /usr/local/nginx/logs/
error.log  nginx.pid
[root@localhost opt]# curl http://192.168.182.131/sx.txt
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.20.1</center>
</body>
</html>

[root@localhost opt]# cat /var/log/nginx/error.log 
2021/10/25 17:18:19 [error] 10117#0: *1 open() "/usr/local/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.182.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.182.131", referrer: "http://192.168.182.131/"
2021/10/25 18:29:13 [notice] 119113#0: signal process started
2021/10/25 18:33:46 [notice] 124307#0: signal process started
2021/10/25 19:29:31 [notice] 56895#0: signal process started
2021/10/26 10:53:47 [notice] 35176#0: signal process started
2021/10/26 10:53:47 [notice] 35188#0: signal process started
2021/10/26 10:57:44 [notice] 39890#0: signal process started
2021/10/26 10:57:44 [notice] 39893#0: signal process started

error_log里的位置和級(jí)別能有以下可選項(xiàng):
位置 | 級(jí)別
file | 記錄到某個(gè)文件中
stdree | 記錄到標(biāo)準(zhǔn)錯(cuò)誤中(不推薦)
syslog:server=address[,parameter=value] | 記錄到某臺(tái)日志服務(wù)器中
memory:size | 記錄到內(nèi)存中(不推薦)

日志級(jí)別 含義
debug 若要使用debug級(jí)別,需要在編譯nginx時(shí)使用–with-debug選項(xiàng)
info 一般信息
notice 不影響正常功能,需要注意的消息
warn 可能影響系統(tǒng)功能,需要提醒用戶的重要事件
error 錯(cuò)誤信息(常用的)
cuit 緊急,比較嚴(yán)重的
alert 必須馬上處理的
emerg 會(huì)導(dǎo)致系統(tǒng)不可用的

正常運(yùn)行必備的配置參數(shù)

user USERNAME [GROUPNAME];    //指定運(yùn)行worker進(jìn)程的用戶和組
pid /path/to/pid_file;    //指定nginx守護(hù)進(jìn)程的pid文件
worker_rlimit_nofile number;    //設(shè)置所有worker進(jìn)程最大可以打開的文件數(shù),默認(rèn)為1024
worker_rlimit_core size;    //指明所有worker進(jìn)程所能夠使用的總體的最大核心文件大小,保持默認(rèn)即可
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評(píng)論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,559評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,581評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,922評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,096評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,639評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,374評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,591評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,789評(píng)論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評(píng)論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,322評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,554評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容