美文网首页
[译]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