2.1 nginx.conf文件的结构
nginx.conf文件的基本结构为:
nginx.conf一共由三部分组成,分别为全局块、events块和http块。
在http块中,又包含http全局块、多个server块。
每个server块中,可以包含server全局块和多个location块。
在同一配置块中嵌套的配置块,各个配置块之间不存在次序关系。
1. 全局块
全局块主要设置一些影响Nginx服务器整体运行的配置指令,这些指令的作用域是Nginx服务器全局。
通常包括配置运行Nginx服务器的用户(组)、允许生成的worker process数、Nginx进程PID存放路径、日志的存放路径和类型以及配置文件引入等。
2. events块
events块涉及的指令主要影响Nginx服务器与用户的网络连接。
常用到的设置包括是否开启对多worker process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型处理连接请求,每个worker process可以同时支持的最大连接数等。
这一部分的指令对Nginx服务器的性能影响较大,在实际配置中应该根据实际情况灵活调整。
3. http块
http块是Nginx服务器配置中的重要部分,代理、缓存和日志定义等绝大多数的功能和第三方模块的配置都可以放在这个模块中。
http块中可以包含自己的全局块,也可以包含server块,server块中又可以进一步包含location块。
可以在http全局块中配置的指令包括文件引入、MIME-Type定义、日志自定义、是否使用sendfile传输文件、连接超时时间、单连接请求数上限等。
4. server块
server块和“虚拟主机”的概念有密切联系。
每一个http块都可以包含多个server块,而每个server块就相当于一台虚拟主机,它内部可有多台主机联合提供服务,一起对外提供在逻辑上关系密切的一组服务(或网站)。
和http块相同,server块也可以包含自己的全局块,同时可以包含多个location块。在server全局块中,最常见的两个配置项是本虚拟主机的监听配置和本虚拟主机的名称或IP配置。
5. location块
每个server块中可以包含多个location块。
这些location块的主要作用是,基于Nginx服务器接收到的请求字符串(例如, server_name/uri-string),对除虚拟主机名称(也可以是IP别名)之外的字符串(前例中“/uri-string”部分)进行匹配,对特定的请求进行处理。
地址定向、数据缓存和应答控制等功能都是在这部分实现。许多第三方模块的配置也是在location块中提供功能。
Last updated
Was this helpful?