NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。
默认情况下,文件名为nginx.conf并放在/etc/nginx目录中(对于开源NGINX产品,位置取决于用于安装NGINX和操作系统的软件包系统,它通常位于/usr/local/nginx/conf/etc/nginx或/usr/local/etc/nginx。) ( 推荐学习:nginx使用 )
配置文件由指令及其参数组成。 简单(单行)指令各自以分号结尾。 其他指令作为“容器”,将相关指令组合在一起,将其包围在花括号({})中。 以下是简单指令的一些示例。
user nobody; error_log logs/error.log notice; worker_processes 1;
为了使配置更易于维护,建议您将其拆分为存储在/etc/nginx/conf.d目录中的一组功能特定文件,并在主nginx.conf文件中使用include指令引用(包函)指定文件的内容。如下所示 -
include conf.d/http; include conf.d/stream; include conf.d/exchange-enhanced;
几个顶级指令(称为上下文)将适用于不同流量类型的指令组合在一起:
events – 一般连接处理http – HTTP协议流量mail – Mail协议流量stream – TCP协议流量
指定在这些上下文之外的指令是在主上下文中。在每个流量处理上下文中,可包括一个或多个服务器上下文来定义控制请求处理的虚拟服务器。 您可以在服务器环境中包含的指令根据流量类型而有所不同。
对于HTTP流量(http上下文),每个服务器指令控制对特定域或IP地址上的资源请求的处理。 服务器上下文中的一个或多个位置上下文定义了如何处理特定的URI集合。
对于邮件和TCP流量(mail 和 stream 上下文),服务器指令各自控制到达特定TCP端口或UNIX套接字的流量处理。
以下配置说明了上下文的使用情况。
user nobody; # a directive in the 'main' context events { # configuration of connection processing } http { # Configuration specific to HTTP and affecting all virtual servers server { # configuration of HTTP virtual server 1 location /one { # configuration for processing URIs with '/one' } location /two { # configuration for processing URIs with '/two' } } server { # configuration of HTTP virtual server 2 } } stream { # Configuration specific to TCP and affecting all virtual servers server { # configuration of TCP virtual server 1 } }
对于大多数指令,在另一个上下文(子上下文)中定义的上下文将继承父级中包含的伪指令的值。 要覆盖从父进程继承的值,请在子上下文中包含该指令。
要更改配置文件才能生效,NGINX必须重新加载该文件。可以重新启动nginx进程或发送reload信号来升级配置,而不会中断当前请求的处理。
以上是Nginx配置文件详解的详细内容。更多信息请关注PHP中文网其他相关文章!