
本文共 1862 字,大约阅读时间需要 6 分钟。
上一节我们用图图的形式介绍了nginx.conf的配置文件内容,按模块就行分类了解。本节我们针对于各个模块进行详细讲解,介绍模块的作用及详细配置内容。那在讲解之前我们先来在回顾下昨天的图。
好,我们下面按模块来介绍相关内容。
1.main
全局块:main模块被称之为全局块,它的配置会影响nginx全局的指令。
#user nobody;user nginx; #worker_processes 1;worker_processes 4; worker_rlimit_nofile 65535;#error_log logs/error.log;#error_log logs/error.log notice;error_log /data/nginx/log/error.log info;pid /data/nginx/log/pid/nginx.pid;
1.1 user nginx;
用户组:使用nginx所运行的用户组,根据实际需求进行定义,一般为nginx用户,若使用root用户直接启动,修改为root即可。
1.2 worker_processes 4;
启动应用时所启动的进程数,默认为1。若需要修改,建议修改为同服务器CPU的核数。
但别较真,你说你一个物理机128C部署了nginx,我必须和cpu设置的核数一致,你非要设置128个,那我真是无语了。。。建议最大不超过16个。
1.3 worker_rlimit_nofile
nginx进程打开的最多文件描述符数目,建议最好与你服务器配置的ulimit -n 的值保持一致。
1.4 error_log /data/nginx/log/error.log info;
全局错误日志定义类型,这行代码即可放在main中,也可以分别设置在其他块中。
1.5 pid /data/nginx/log/pid/nginx.pid;
指定nginx进程运行文件存放地址,注意后面pid的位置,文件夹路径一定要正确并且文件夹存在。
2.events
配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
events { accept_mutex on; multi_accept on; use epoll; worker_connections 1024; }
2.1 accept_mutex on
设置网路连接序列化,防止惊群现象发生,默认为on。
惊群现象:一个网路连接到来,多个睡眠的进程被同时叫醒,但只有一个进程能获得链接,这样会影响系统性能。这里设置此参数代表设置网路连接序列化,防止惊群现象发生。
2.2 multi_accept on;
设置一个进程是否同时接受多个网络连接,默认为off。Nginx服务器的每个工作进程可以同时接受多个新的网络连接,即默认为一个工作进程只能一次接受一个新的网络连接,打开此参数后,可以同时接受多个。此参数根据实际网络情况进行配置。
2.3 use epoll;
事件驱动模型,模型包括:select、poll、kqueue、epoll、resig、/dev/poll、eventport。如果你不知道你的环境中Nginx该使用哪种轮询方法的话,它会选择一个最适合你操作系统的。
2.4 worker_connections 1024;
最大连接数设置,默认为512。每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数。可与设置为ulimit -n 中配置的一致。
3.stream
stream模块属于外加的模块(大于1.9.0版本),如果要使用这个模块时,需要在编译nginx时添加编译此模块的内容。这个时候,才可以使用,否则在使用的时候,检查nignx配置文件会报错。使用时,建议此模块添加在配置文件的最后面。在编译的时候,记得添加
-with-stream
stream代码块:
stream { include stream/*;}
3.1 include stream/*;
引入stream文件夹下的配置文件内容。
为了防止内容过多,造成接受不了,这里就先讲解这3个模块的内容,也就是讲解完了头顶和眼镜的模块部分,下节我们继续讲解相关内容!!
发表评论
最新留言
关于作者
