创建NGINX Plus和NGINX配置文件

 


NGINX和NGINX Plus与其他服务类似,因为它们使用以特定格式编写的基于文本的配置文件。默认情况下,该文件名为nginx.conf,对于NGINX Plus,该文件位于/ etc / nginx目录中。(对于NGINX Open Source,其位置取决于用于安装NGINX的软件包系统和操作系统。它通常是/ usr / local / nginx / conf/ etc / nginx/ usr / local / etc / nginx之一

指令

配置文件由指令及其参数组成。每个简单(单行)指令以分号结尾。其他指令充当“容器”,将相关指令组合在一起,并用花括号({})括起来;这些通常称为。以下是一些简单指令的示例。

user             nobody;
error_log        logs/error.log notice;
worker_processes 1;

 

功能特定的配置文件

为了使配置更易于维护,我们建议您将其拆分为一组存储在/etc/nginx/conf.d目录中的特定于功能的文件,并使用nginx.confinclude主文件中的伪指令来引用配置的内容。功能特定的文件。

include conf.d/http;
include conf.d/stream;
include conf.d/exchange-enhanced;

 

语境

一些顶级指令(称为context)将适用于不同流量类型的指令分组在一起:

  • events –常规连接处理
  • http – HTTP流量
  • mail –邮件流量
  • stream – TCP和UDP流量

放置在这些上下文之外的指令被称为在主要上下文中。



虚拟服务器

在每个流量处理上下文中,您都包含一个或多个server块,以定义控制请求处理的虚拟服务器。您可以在server上下文中包含的指令根据流量类型而有所不同。

对于HTTP流量(http上下文),每个server指令都控制对特定域或IP地址上的资源请求的处理。location上下文中的一个或多个server上下文定义了如何处理URI的特定集合。

对于邮件和TCP / UDP通信(mailstream上下文),server每个伪指令控制到达特定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 starting with '/one'
        }
        location /two {
            # configuration for processing URIs starting with '/two'
        }
    } 
    
    server {
        # configuration of HTTP virtual server 2
    }
}

stream {
    # Configuration specific to TCP/UDP and affecting all virtual servers
    server {
        # configuration of TCP virtual server 1 
    }
}

 



遗产

通常,上下文(包含在另一个上下文(其父对象)中)将继承父级别包含的指令设置。一些指令可以出现在多个上下文中,在这种情况下,您可以通过在子上下文中包含该指令来覆盖从父代继承的设置。有关示例,请参见proxy_set_header指令。



重新加载配置

为了使对配置文件的更改生效,必须重新加载它。您可以重新启动该nginx过程或发送reload信号以升级配置,而不会中断当前请求的处理。有关详细信息,请参见在运行时控制NGINX进程

借助NGINX Plus,您可以在上游组中的服务器之间动态地重新配置负载平衡,而无需重新加载配置。您还可以使用NGINX Plus API和键值存储来动态控制访问,例如基于客户端IP地址