Code前端首页关于Code前端联系我们

Nginx 教程:配置文件指令及其参数

terry 2年前 (2023-09-28) 阅读数 57 #未命名

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。 include 指令用于 conf

文件中以引用指定文件的内容。如下所示 -

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

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

  • 事件 – 常规连接处理
  • http – HTTP 协议流量
  • 邮件 – 邮件协议流量
  • 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信号来升级配置,而不会中断当前请求的处理。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门