美文网首页
[译]Creating NGINX Plus Configura

[译]Creating NGINX Plus Configura

作者: 趁你还年轻233 | 来源:发表于2018-06-27 15:37 被阅读28次

NGINX与其他的服务类似,都是使用固定格式的文字式的配置文件。默认情况下nginx.conf保存在/etc/nginx目录下。通常来说是/usr/local/nginx/conf,/etc/nginx,/usr/local/etc/nginx。

指令

配置文件由指令和参数组成。简单的(单行)指令以分号结尾。其他的指令就像是一个"容器",它会将一些相关得指令聚集在一起,并且由{}封闭起来;这些通常被称为块。这里有一些简单的指令的例子:

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

具体功能的配置文件

为了使得配置文件更好维护,我们建议你将配置文件拆分成一个文件集合到/etc/nginx/conf.d目录,并且使用include在nginx.conf文件中去引入这些文件。

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

上下文

一些最高级的指令,被称作context,按照不同的规则将指令分类。

  • events - 一般连接处理
  • http - HTTP规则
  • mail - Mail规则
  • stream -TCP和UDP规则

在这些context之外的叫做main context。

虚拟服务器

在每一种协议规则上下文中,你包括了1个或者多个server块去定义虚拟服务器,这些虚拟服务器控制着请求的处理。根据不同的traffic类型,在server上下文中的指令类型也有所不同。

对于HTTP tracffic来说,也就是http上下文,每一个server指令控制着特殊的domain或者IP地址下的资源请求的处理。在一个server中可以定义一个或者多个location上下文,每个location都与一个特定的URI相匹配。

对于mail或者TCP/UDP协议来说(mailstream上下文),server指令控制着特定的TCP端口或者UNIX socket的处理。

多个上下文的配置示例文件

user nobody; # 一个main上下文的指令

events {
    # 连接的配置信息
}

http {
    # HTTP配置,对所有虚拟服务器都有影响
    server {
        # HTTP虚拟服务器1的配置
        location /one {
            # 处理以'/one'开头的URL
        }
        location /two {
            # 处理以'/two'开头的URL
        }
    }
    server {
        # HTTP虚拟服务器2的配置
    }
}

stream {
    # TCP/UDP配置,对所有虚拟服务器都有影响
    server {
        # TCP虚拟服务器1的配置
    }
}

继承

总的来说,一个child 上下文--被包含在另一个上下文(父上下文中)-- 继承了父级的指令。一些指令可以在多个上下文中出现,在子上下文中可以重写继承自父上下文的配置。举个例子来说,proxy_set_header就是这样。

重新加载配置

当配置文件修改后,必须重新加载,文件才能生效。你可以使用nginx进程发送reload命令在不中断当前请求进程的情况下去升级配置。可以查看Controlling NGINX Processing at Runtime。

相关文章

网友评论

      本文标题:[译]Creating NGINX Plus Configura

      本文链接:https://www.haomeiwen.com/subject/lbdbyftx.html