NGINX和NGINX Plus与其他服务类似,因为它们使用以特定格式编写的基于文本的配置文件。默认情况下,该文件名为nginx.conf,而NGINX Plus则放在/ etc / nginx目录中。 (对于开源NGINX,位置取决于用于安装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.conf文件中的include指令来引用内容特定于功能的文件。
include conf.d/http;
include conf.d/stream;
include conf.d/exchange-enhanced;
背景
一些顶级指令(称为上下文)将适用于不同流量类型的指令组合在一起:
- event- 一般连接处理
- http - HTTP流量
- mail - 邮件流量
- stream - TCP和UDP流量
虚拟服务器
在每个流量处理上下文中,您包含一个或多个服务器块,以定义控制请求处理的虚拟服务器。您可以包含在服务器上下文中的指令因流量类型而异。
对于HTTP流量(http上下文),每个服务器指令控制对特定域或IP地址的资源请求的处理。服务器上下文中的一个或多个位置上下文定义了如何处理特定的URI集。
对于邮件和TCP / UDP流量(邮件和流上下文),服务器指令各自控制到达特定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进程或发送重载信号以升级配置,而不会中断当前请求的处理。有关详细信息,请参阅在运行时控制NGINX进程。