示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #user nobody; worker_processes 1; #error_log logs/error.log error;
#pid logs/nginx.pid;
events { worker_connections 1024; }
http { include mime.types; default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
…… }
|
块配置项
块配置项有一个块配置项名和一堆大括号组成。
块配置项可以嵌套。内层块直接继承外层块,当内外层块中的配置发生冲突时,以哪个块配置为准取决于解析这个配置项的模块。
语法格式
注释
在要注释的语句前加上 #
单位
1 2 3 4 5 6 7 8 9 10 11 12 13
| ##### 空间大小 ##### K或者k 千字节 M或者m 兆字节
##### 时间 ##### ms 毫秒 s 秒 m 分钟 h 小时 d 天 w 周 M 月 y 年
|
变量
使用变量时,在变量前加上 $
。一些变量只有少数模块支持,并不是通用的。
基本配置
用于调试进程和定位问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| 语法: daemon on|off; 默认: daemon on;
语法: master_process on|off; 默认: master_process on;
语法: error_log /path/file level; 默认: error_log logs/error.log error;
语法: debug_points [stop|abort] 通常不会使用这个配置项
语法: debug_connection [IP|CIDR] events { debug_connection 10.224.66.14; debug_connection 10.224.66.0/24; } 这样,仅仅来自以上IP的请求才会输出debug级别的日志。
语法: worker_rlimit_core size;
语法: working_directory path;
|
正常运行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 语法: env VAR|VAR=VALUE 这个配置项可以让用户直接设置操作系统上的环境变量。
语法: include /path/file;
语法: pid path/file; 默认: pid logs/nginx.pid;
语法: user username [groupname]; 默认: user nobody nobody;
语法: worker_rlimit_nofile limit;
语法: worker_rlimit_sigpending limit;
|
优化性能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 语法: worker_processes number; 默认: worker_processes 1; 一般情况下,用户要配置与 CPU 的内核数相等的 worker 进程
语法: worker_cpu_affinity cpumask [cpumask...] 加入有 4 颗 CPU 内核,就可以进行如下配置: worker_processes 4; worker_cpu_affinity 1000 0100 0010 0001;
语法: ssl_engine device;
语法: timer_resolution t;
语法: worker_priority nice; 默认: worker_priority 0;
|
事件类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| 语法: accept_mutex [on|off] 默认: accept_mutex on accept_mutex 是 Nginx 的负载均衡锁
语法: lock_file path/file 默认: lock_file logs/nginx.lock
语法: accept_mutex_delay Nms; 默认: accept_nutex_delay 500ms;
语法: multi_accept [on|off]; 默认: multi_accept off;
语法: use [kqueue|rtsig|epoll|/dev/poll|select|poll|eventport]; 默认: Nginx 会自动使用最适合的事件模型。
语法: worker_connections number;
|
参考书籍: 《深入理解Nginx》