当前位置: 首页 > 教程 > Nginx >

Nginx配置文件

精华
小牛编辑
174浏览
2023-03-14

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。 默认情况下,文件名为nginx.conf并放在/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;

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

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

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

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

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

对于大多数指令,在另一个上下文(子上下文)中定义的上下文将继承父级中包含的伪指令的值。 要覆盖从父进程继承的值,请在子上下文中包含该指令。 有关上下文遗留的更多信息,请参阅proxy_set_header伪指令的文档。

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