Nginx三大模块--配置模块

Nginx配置模块是最简单的模块,使用include指令简单的开启文件包含即可,`include`指令在上一篇文章Nginx的语法已描述过

2 min read
By myfreax
Nginx三大模块--配置模块

Nginx配置模块是最简单的模块,使用include指令简单的开启文件包含即可,include指令在上一篇文章Nginx的语法已描述过

include /file/path.conf;
include sites/*.conf;

理解默认配置文件

user root root;
worker_processes 1;
worker_priority 0;
error_log logs/error.log error;
log_not_found on;
events {
 accept_mutex on;
 accept_mutex_delay 500ms;
 multi_accept off;
 worker_connections 1024;
}

以上是Nginx开箱即用的配置文件,仅仅作为一个示例,因此我们需要根据硬件做出适当的调整

调整配置文件

  • user root root;

这个指令指定worker进程以root用户启动,这是非常不安全的,因为root用户拥有文件系统的所有权限,我们需要创建一个新的帐号并且使用他

  • worker_processes 1;

在这个设置中,仅有一个worker进程被启动,它将会处理全部请求(Nginx不支持多线程),这种情况适用于单核心的CPU,如果你CPU不只是一个核心,可以增大这个值,数值的大小可以根据CPU的核心数来配置

  • worker_priority 0;

默认情况下,worker进程的优先级与其它进程的优先级一样,如果系统同时执行其它任务,可以把Nginx的worker进程调至更高的优先级,在这个配置中需要减少这个值,系统进程优先级的范围是-20(高优先级)到19(低优先级),这个没有建议值,可以使用内核进程优先级worker进程默认值

  • worker_connections 1024;

这个设置,允许你定义并发连接的数量,如果开启4个worker进程,每个进程允许1024个并发连接,服务器将会同时接受4096个并发连接,这个配置需要根据个人的硬件进行调整,如果你的CPU足够强大,内存足够多,可以增大这个值

适配硬件调整

Low-traffic setup Standard setup      High-traffic setup
CPU: Dual-core     CPU: Quad-core      CPU: 8-core
RAM: 2 GB          RAM:4 GB            RAM: 12 GB
Requests: ~ 1/s    Requests: ~ 50/s    Requests: ~ 1000/s

建议值

worker_processes 2;         worker_processes 4;            worker_processes 8;
worker_rlimit_nofile 1024;  worker_rlimit_nofile 8192;     worker_rlimit_nofile 16384;
worker_priority -5;         worker_priority 0;             worker_priority 0;
worker_cpu_affinity 01 10;  worker_cpu_affinity 0001 0010..; 
events {                    events {                      events {
   multi_accept on;            multi_accept on;             multi_accept on;
   worker_connections 128;     worker_connections 1024;      worker_connections 8192;       

总结

worker进程数量一般与CPU核心数匹配,worker并发连接数一般依赖与RAM