Nginx配置文件详解

Nginx配置文件详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。

默认情况下,文件名为nginx.conf并放在/etc/nginx目录中(对于开源NGINX产品,位置取决于用于安装NGINX和操作系统的软件包系统,它通常位于/usr/local/nginx/conf/etc/nginx或/usr/local/etc/nginx。) ( 推荐学习: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;

几个顶级指令(称为上下文)将适用于不同流量类型的指令组合在一起:

events – 一般连接处理http – HTTP协议流量mail – Mail协议流量stream – TCP协议流量

指定在这些上下文之外的指令是在主上下文中。在每个流量处理上下文中,可包括一个或多个服务器上下文来定义控制请求处理的虚拟服务器。 您可以在服务器环境中包含的指令根据流量类型而有所不同。

对于HTTP流量(http上下文),每个服务器指令控制对特定域或IP地址上的资源请求的处理。 服务器上下文中的一个或多个位置上下文定义了如何处理特定的URI集合。

对于邮件和TCP流量(mail 和 stream 上下文),服务器指令各自控制到达特定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 with '/one'
        }

        location /two {
            # configuration for processing URIs with '/two'
        }
    }

    server {
        # configuration of HTTP virtual server 2
    }
}

stream {
    # Configuration specific to TCP and affecting all virtual servers

    server {
        # configuration of TCP virtual server 1 
    }
}

对于大多数指令,在另一个上下文(子上下文)中定义的上下文将继承父级中包含的伪指令的值。 要覆盖从父进程继承的值,请在子上下文中包含该指令。

要更改配置文件才能生效,NGINX必须重新加载该文件。可以重新启动nginx进程或发送reload信号来升级配置,而不会中断当前请求的处理。

以上就是Nginx配置文件详解的详细内容,更多请关注https://www.sxiaw.com/其它相关文章!