创建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)将适用于不同流量类型的指令分组在一起:
放置在这些上下文之外的指令被称为在主要上下文中。
虚拟服务器
在每个流量处理上下文中,您都包含一个或多个server
块,以定义控制请求处理的虚拟服务器。您可以在server
上下文中包含的指令根据流量类型而有所不同。
对于HTTP流量(http
上下文),每个server指令都控制对特定域或IP地址上的资源请求的处理。location上下文中的一个或多个server
上下文定义了如何处理URI的特定集合。
对于邮件和TCP / UDP通信(mail和stream上下文),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地址。