6 Nginx常用核心模块指令
-
ng的核心模块指令,重点关注的有:error_log, include,pid,user,worker_cpu_affinity,worker_processes.
-
error_log: 日志有6个级别:
debug | info | notice | warn | error | crit
默认值:${prefix}/logs/error.log(生产环境起码是error级别活以上)
nginx支持为每一个虚拟主机设置不同的错误日志文件。
就是在server{
access_log logs/xxx/xxx.log
} -
include
语法:include file | *
默认值: none
可以包含一些其他的文件来完成你想要的功能
例如:
http{
include mime.types
include ccproxy.conf
} -
pid
语法:pid file (记录进程的文件)
默认值:编译时指定
举例:pid /var/log/nginx.pid(默认放到当前路径下)
指定pid文件,可以使用kill命令来发送相关信号,例如你想重新读取配置文件,则可以使用:
kill -HUP ‘cat /var/log/nginx.pid’ -
user(表示谁在运行nginx)
语法:user user[group]
默认值:nobody nobody
如果主进程以root运行,nginx将会调用setuid()/setgid()来设置用户/组,如果没有指定组,那么将使用与用户名相同的组,默认情况下会使用nobody nobody组(或者nogroup),或者在编译时指定的-user=USER和-group=GROUP的值。
为了安全性考虑,可以定义用户,然后使用改用户启用,可以实现哪些用户可以访问,哪些用户不可以访问. -
worker_cpu_affinity
语法:worker_cpu_affinity cpumask [cpumask …]
默认值:none
仅支持linux系统
这个参数允许将工作进程指定到cpu,它调用sched_setaffinity()函数。
worker_processes 4
worker_cpu_affinity 0001 0010 0100 1000
**** 假设机器有多个cpu,指定cpu和进程的绑定关系**
指定每个进程到一个cpu
worker_processes 2
worker_cpu_affinity 0101 1010
worker_processes通常和cpu的核数一致或者配置为2倍,也可以让系统自己分配。
变量:
$pid = 进程号id