Linux运维养成记-集群架构Nginx(二)

1.nginx.conf 结构

上一章提到nginx.conf中的配置项可以分为三大部份,分别是全局部份、events部份、http部份。http 部分包括 server 块,一个server 块又包含1 个或多个 location 块,具体在 nginx.conf 文件中结构如下:

#全局部份
……
#events部份
events
{
……
}
#http部份
http
{
    ……
    server{
        ……
        location [patten]
        {}
    }
    server{
        ……
        location [patten]
        {}
        location [patten]
        {}
    }
}

2.main 全局部分参数详解

全局部份用来配置通用的设置,主要有以下几项:

user  nginx nginx;  
worker_processes  4;   
worker_cpu_affinity 0001 0010 0100 1000
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;
include    filename; 

2.1 user nginx nginx;

用户组:使用nginx所运行的用户组或用户,根据实际需求进行定义,一般为nginx用户,若使用root用户直接启动,修改为root即可,如果使用 nobody,表示所有用户均可运行。

2.2 worker_processes 4;

启动应用时所启动的进程数,若需要修改,建议修改为同服务器CPU的核数,如果设置为”auto”,表示nginx自动检测。

2.3 worker_cpu_affinity 0001 0010 0100 1000

默认情况下,Nginx的多个进程有可能跑在某一个CPU或CPU的某一核上,导致Nginx进程使用硬件的资源不均,因此绑定Nginx进程到不同的CPU上是为了充分利用硬件的多CPU多核资源的目的。
解释:0001 0010 0100 1000表示开启 4 个进程,第一个进程对应第一个CPU内核,第二个进程对应第二个CPU内核,依此类推。

2.4 worker_rlimit_nofile 65535;

nginx进程打开的最多文件描述符数目,建议最好与你服务器配置的ulimit -n 的值保持一致。

2.5 error_log /data/nginx/log/error.log info;

全局错误日志定义类型,这行代码即可放在main中,也可以分别设置在其他块中,根据不同的配置位置其作用域也不相同。日志输出级别有debug,info,notice,warn,error,crit等,其中,debug输出的log最为详细,crit输出最少。

2.6 pid /data/nginx/log/pid/nginx.pid;

指定nginx进程运行文件存放地址,注意后面pid的位置,文件夹路径一定要正确并且文件夹存在。

2.7 include filename;

引入其它的配置文件。也可以配置在其它块中,区别在于作用域。

3.events部分参数详解

配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等,具体参数如下:

events {
    accept_mutex on;   
    multi_accept on;  
    use epoll;      
    worker_connections  1024;    
}

3.1 accept_mutex on;

设置网路连接序列化,防止惊群现象发生,默认为on。
惊群现象:一个网路连接到来,多个睡眠的进程被同时叫醒,但只有一个进程能获得链接,这样会影响系统性能。这里设置此参数代表设置网路连接序列化,防止惊群现象发生。

3.2 multi_accept on;

配置每个worker process是否同时接收多个新到达的网络连接,此配置默认为off状态,即每个worker process一次只能接收一个新到达的网络连接。

3.3 use epoll;

配置处理网络消息的事件驱动模型,可选项有select、poll、kqueue、epoll、rtsig、/dev/poll和eventport。默认为epoll。epoll是高效模式,对于Linux系统,epoll是首选工作模式。

3.4 worker_connections 1024;

最大连接数设置,默认为512。每个进程允许的最多连接数,可与设置为ulimit -n 中配置的一致。

HTTP模块留给下一章。。。

发布了18 篇原创文章 · 获赞 26 · 访问量 6955

猜你喜欢

转载自blog.csdn.net/weixin_45181224/article/details/104718265