nginx的配置文件由三部分组成:
第一部分:全局块
从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令,主要保罗配置运行Nginx服务器的用户(组),允许生成的worker process数,进程PID存放路径,日志存放路径和类型以及配置文件的引入等。
比如:
Worker_processes 1;
这是nginx服务器并发处理服务的关键配置,worker_processes值越大,可以支持的开发处理量越多,但是会受到硬件,软件等设备的制约
第二部分:events块
Events块涉及的指令主要影响Nginx服务器与用户的网络连接,常用的设置包括是否对多work process下的网络连接进行序列化,是否允许同时接收多个网络设置,选取那种时间驱动模型来处理连接请求,每个word process 可以同时支持的最大连接数等
比如:
Worker connection 1024;
表示每个worker connection支持最大连接数为1024
这部分的配置对nginx的性能影响较大,实际中灵活配置。
第三部分:http块
配置最频繁的部分,包括http全局块和server块
http全局块包括配置的指令,包括文件引入,MIME-TYPE定义,日志自定义,连接超时时间,单链接请求数上限等。
Server块和虚拟主主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的
每个http块包括多个server块,而每个server块就相当于一个虚拟主机
每个server块分为全局server块,以及可以同时包含多个location块
- 全局server块
最常见的配置是本虚拟机主机的监听配置和本虚拟机主机的名称和IP配置 - location块
一个server块可以配置多个location块
这块的主要作用是基于Nginx服务器接受到的请求字符串(例如server_name/url-string),对虚拟主机名称(也可以是IP别名)之外的字符串(例如前面的/url-string)进行匹配,对特定的请求进行处理,地址定向,数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。