2. Nginx配置文件结构
2017-02-24 本文已影响24人
freefishz2
配置文件由指令
和参数构成,包含简单指令和复合指令。
简单指令(单行)以;
结尾。示例如下:
user nobody;
error_log logs/error.log notice;
worker_processes 1;
复合指令将相关指令包含在{}
之间,复合指令支持嵌套。
为了使配置易于管理,最好将一系列相关配置分别保存在不同的文件里,然后使用include
指令将它们引入到主配置文件nginx.conf
中,如下所示:
include conf.d/http;
include conf.d/stream;
include conf.d/exchange-enhanced;
配置文件中包含一系列面向不同通信方式的顶层复合指令:
- event - 通用连接处理
- http - HTTP
- mail - Mail
- stream - TCP
未包含在上述指令中的其它指令都属于 main
。
每个不同通信方式中,又可以包含一到多个server
指令,用于定义处理请求的虚拟服务器
。虚拟服务器的配置内容依赖于不同的通信方式。
对于http
,Nginx根据不同域名或IP地址来匹配相应的server
处理请求,而server
中包含的 location
定义了如何处理不同的URI。
对mail
和tcp
,Nginx根据请求的TCP端口或Unix套接字来选择server
处理请求。
请看以下示例说明:
user nobody; # 属于 main 的简单指令
events {
# 处理连接的配置
}
http {
# 针对HTTP的配置,对所含的所有虚拟服务器均有效
server {
# 第一个HTTP虚拟服务器配置
location /one {
# 处理以 '/one' 开头的URI配置
}
location /two {
# 处理以 '/two' 开头的URI配置
}
}
server {
# 第二个HTTP虚拟服务器配置
}
}
stream {
# 针对TCP的配置,对所含的所有虚拟服务器均有效
server {
# 第一个TCP虚拟服务器配置
}
}
绝大多数指令会继承父指令的配置内容,子指令可以通过重新设置相同的指令来覆盖父指令的设置。
配置文件修改以后,可以通过重启Nginx或发送reload
信号给Nginx来让配置生效。