nginx 配置文件格式
主配置文件结构:
main block :主配置段,即全局配置段,对http,mail都有效
event {
...
} 事件驱动相关的配置
http {
...
} http/https 协议相关配置段
mail {
...
} mail 协议相关 配置段
stream {
...
} stream
http 协议相关的配置结构
http {
...
... 各server 的公共配置
server { 每个server用于定义一个虚拟主机
...
}
server {
...
server_name 虚拟主机名
root 主目录
alias 路径别名
location [OPERATOR] URL { 指定URL 的特性
...
if CONDITION {
...
}
}
}
}
nginx 配置
配置文件的组成部分:
主配置文件:nginx.conf
子配置文件:include conf.d/*.conf
fastcgi,uwsgi,scgi等协议相关的配置文件
mime.types :支持的mime类型
主配置文件的配置指令:
directive value [value2 ...];
注意:
(1)指令必须以分号结尾
(2)支持使用配置变量
内建变量:
由Nginx模块引入,可直接引用
自定义变量:
由用户使用set 命令定义
set variable_name value;
引用变量:
$variable_name
Main 全局配置段常见的配置指令分类
正常运行必备的配置
优化性能相关的配置
用于调试及定位问题相关的配置
事件驱动相关的配置
帮助文档
http://nginx.org/en/docs/
正常运行必备的配置:
帮助文档:
http://nginx.org/en/docs/ngx_core_module.html
1 、user
Syntax: user user [group];
Default: user nobody nobody;
Context: main
指定worker 进程的运行身份,如组不指定,默认和用户名同名
2 、pid file
指定存储nginx 主进程PID 的文件路径
3 、include file | mask
指明包含进来的其它配置文件片断
4 、load_module file
模块加载配置文件:/usr/share/nginx/modules/*.conf
指明要装载的动态模块路径: /usr/lib64/nginx/modules
性能优化相关的配置:
帮助文档:
http://nginx.org/en/docs/ngx_core_module.html
1 、worker_processes number | auto
worker进程的数量,通常应该为当前主机的cpu 的物理核心数
2 、worker_cpu_affinity cpumask ...
worker_cpu_affinity auto [cpumask] 提高缓存命中率
CPU MASK:
00000001 :0 号CPU
00000010 :1 号CPU
10000000 :8 号CPU
worker_cpu_affinity 0001 0010 0100 1000;
worker_cpu_affinity 0101 1010;
3 、worker_priority number
指定worker 进程的nice 值,设定worker 进程优先级:[-20,20]
4 、worker_rlimit_nofile number
worker 进程所能够打开的文件数量上限, 如65535
事件驱动相关的配置:
帮助文档
http://nginx.org/en/docs/ngx_core_module.html
events {
...
}
1 、worker_connections number
每个worker 进程所能够打开的最大并发连接数数量,如10240
总最大并发数:worker_processes * worker_connections
2 、use method
指明并发连接请求的处理方法, 默认自动选择最优方法 use epoll;
3 、accept_mutex on | off 互斥
处理新的连接请求的方法,on指由各个worker 轮流处理新请求,Off指每个新请求的到达都会通知( 唤醒) 所有的worker 进程,但只有一个进程可获得连接,造成“惊群”,影响性能,默认on。
调试和定位问题:
帮助文档
http://nginx.org/en/docs/ngx_core_module.html
1 、daemon on|off
是否以守护进程方式运行nignx,默认是守护进程方式
2 、master_process on|off
是否以master/worker 模型运行nginx ,默认为on,off将不启动worker
3 、error_log file [level]
错误日志文件及其级别,出于调试需要,可设定为debug ,但debug仅在编译时使用了“--with-debug” 选项时才有效
方式:file /path/logfile;
stderr:发送到标准错误
syslog:server-address[,parameter=values]: 发送到syslog
memory:size 内存
level:debug|info|notice|warn|error|crit|alter|emerg