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

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