配置文件分两部分

 main主配置段

 http基本配置段

语法格式,配置指令要以分号结尾

     directive value1 [value2..];

支持使用变量

 模块内置变量

 自定义变量

  set var_name value

主配置段的指令的类别

  用于调试,定位问题

  正常运行必备的配置

  优化性能的配置

  事件相关的配置


  用于调试,定位问题的指令

 1,daemon [off|on]

  是否以守护进程方式启动nginx,默认为on

 2,master_process on |off

  是否以master/worker模型来运行nginx

 3,error_log  /path/to/error_log level

  错误日志文件及其级别;处于调试的目的,可以使用debug级别,但此级别只有在编译nginx时使用了--with-debug选项才有效

   正常运行的必备配置

  1,user USERNAME[GROUPNAME];

  指定运行worker进程的用户和组,例如:

  user nginx nginx;

  2.指定nginx的pid文件

  pid /path/to/pid_file

  3.worker_rlimit_nofile #;

  指定一个worker进程所能打开的最大文件句柄数;

  4.worker_rlimit_sigpending #

       指定每个用户能够发往worker的信号的数量

    优化性能的相关配置

  1,worker_processes 3;

  worker线程的个数,通常应该为物理CPU核心个数减1

                                   cat /proc/cpuinfo查看CPU的核心

  2.worker_cpu_affinity cpumask ...;

  绑定worker进程至指定的CPU上

  CPUMASK

  0001第一颗cpu

  0010

  0100

  1000

  例如:worker_cpu_affinity 00000001 00000010 00000100

  3,time_resolution t;

  时间解析度

  gettimeofday();

  4,worker_priority nice; 调整nice值(-20,19),nice越大,cpu优先级越高

    事件相关的配置

  1,accept_mutex[on|off]

  内部调用用户请求至各worker时用的负载均衡锁;打开时表示能让多个worker轮流地,序列化的与响应新请求

  2,lock_file /path/to/lock_file;

  3,accept_mutex_delay #ms;

  4,use[epoll |rgsig|select|poll]

  定义使用的事件模型;建议让Nginx自动选择

  5,worker_connection #;

  每个worker进程所能够响应的最大并发请求数

网络连接相关的配置:

1.keepalive_timeout time;

保持连接的超市时长,默认为75s

2.keepalive_requests #;

在一次保持连接上允许承载最大资源请求数

3.keepalive_disable [msie6|safari|none]

为指定类型的浏览器禁用长连接;

4.tcp_nodelay on|off

对长连接是否使用TCP_NODELAY选项;

5.client_header_timeout time;

读取http请求报文首部的超时时长

6.client_body_timeout time

读取http请求body部分的超时时长

7.send_timeout time;

发送响应报文的超市时长

对客户端的请求进行限制:

1.limit_except METHOD{...}

指定对范围之外的其它方法的访问控制;

limit_except GET{

allow 172.16.0.0/16;

deny all

}

2.client_body_max_size SIZE;

限制请求报文中body部分上限;通过检测请求报文首部中的"Content_Length"来判定

3.limit_rate speed;

限制客户端每秒钟传输的字节数,默认为0,表示无限制

对内存或磁盘资源进行分配

1.client_body_in_file_only on|clean|off;

请求报文的body部分是否可暂存到磁盘中,on表示允许,请求结束也不会删除暂存内容,clean用完会清除磁盘,off不允许暂存;

2.client_body_in_single_buffer on|off

请求报文的body部分是否可暂存到内存的buffer中,放到里面会提高性能

3,client_body_buffer_size size;

4.client_body_temp_path DIR [level1[level2[level3[level4]]]]

例如:client_body_temp_path /var/tmp/nginx/client 1 2

5.client_header_buffer_size size;

MIME类型相关的配置

1,types{}

定义MIME types至文件的扩展名;

type{

text/html .html;

p_w_picpath/jpeg .jpg;

}

2.default_type MIME-TYPE;

文件操作优化相关的配置

1.sendfile on|off;

2.aio on|off;

3.directio size|off;

是否使用O_DIRECT选项去请求读取文件;与sendfile互斥

4.open_file_cache max=N[inactive=time] | off;

nginx可以缓存以下三种信息:

(1)文件句柄,文件大小和最近一次修改时间;

(2)打开目录的目录结构

(3)没有找到的或者没有权限操作的文件的相关信息

max=N表示可以缓存的最大条目上限;一旦到达上限,则会使用LRU从缓存中删除最近最少使用的条目; inactive=time;在inactive指定的时长内没有被访问过的缓存条目就会淘汰,默认关闭

5.open_file_cache_errors on|off;

是否缓存在文件缓冲中缓存打开文件时出现找不到路径,没有权限等的错误信息;

6.open_file_cache_min_uses time;

每隔多久检查一次缓存中缓存条目的有效性;默认60s