创建NGINX Plus和NGINX配置文件


  NGINX和NGINX Plus与其他服务类似,因为它们使用以特定格式编写的基于文本的配置文件。bluehost美国独立服务器将为您介绍创建NGINX Plus和NGINX配置文件,默认情况下,该文件名为nginx.conf,对于NGINX Plus,该文件位于/ etc / nginx目录中。(对于NGINX Open Source,其位置取决于用于安装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.confinclude主文件中的伪指令来引用该文件的内容。功能特定的文件。

  include conf.d/http;

  include conf.d/stream;

  include conf.d/exchange-enhanced;

  语境

  一些顶级指令(称为context)将适用于不同流量类型的指令归为一组:

  events –常规连接处理

  http – HTTP流量

  mail –邮件流量

  stream – TCP和UDP流量

  放置在这些上下文之外的指令被认为是在主要上下文中。

  虚拟服务器

  在每个流量处理上下文中,您都包含一个或多个server块,以定义控制请求处理的虚拟服务器。您可以在server上下文中包含的指令根据流量类型而有所不同。

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

  对于邮件和TCP / UDP流量(mail和stream上下文),server每个伪指令控制到达特定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 starting with '/one'

  }

  location /two {

  # configuration for processing URIs starting with '/two'

  }

  }

  server {

  # configuration of HTTP virtual server 2

  }

  }

  stream {

  # Configuration specific to TCP/UDP and affecting all virtual servers

  server {

  # configuration of TCP virtual server 1

  }

  }

  继承

  通常,子上下文(一个上下文包含在另一个上下文(其父对象)中)将继承父级别包含的指令设置。某些指令可以出现在多个上下文中,在这种情况下,您可以通过在子上下文中包含该指令来覆盖从父项继承的设置。有关示例,请参见proxy_set_header指令。

  重新加载配置

  为了使对配置文件的更改生效,必须重新加载该文件。您可以重新启动该nginx过程或发送reload信号以升级配置,而不会中断当前请求的处理。有关详细信息,请参见在运行时控制NGINX进程。

  使用NGINX Plus,您可以在上游组中的服务器之间动态地重新配置负载平衡,而无需重新加载配置。您还可以使用NGINX Plus API和键值存储来动态控制访问,例如基于客户端IP地址。