ngnix 二 配置ngnix作为一个web服务器

翻译自:Configuring ngnix plus as a web server
本文介绍如何将NGINX Plus配置为Web服务器,并包括以下部分:

  • Setting Up Virtual Servers (虚拟主机的配置)
  • Configuring Locations (location 的配置)
  • Using Variables (参数的使用)
  • Returning Specific Status Codes (返回特定状态码)
  • Rewriting URIs in Requests (重写请求里的URI)
  • Rewriting HTTP Responses (重写 HTTP 响应)
  • Handling Errors (错误处理)

有关如何调整NGINX Plus和开源NGINX软件的更多信息,请观看我们的免费网络研讨会按需安装和调优NGINX。
在高层次上,将NGINX Plus配置为Web服务器是定义它处理哪些URL以及如何处理这些URL上的 为了获取资源的 HTTP请求的问题。 在较低级别,NGINX Plus配置 定义了一组 virtual server,其控制对特定域或IP地址的请求的处理。 有关配置文件的更多信息,请参阅创建NGINX Plus配置文件
用于HTTP流量的每个虚拟服务器(virtual server)的定义在配置文件中被称为 location 配置实例,用于控制特定URI集合的处理。 每个 location 定义了自己的场景,即当 URI 映射到此 location会发生什么。 NGINX Plus提供对此过程的绝对控制。 每个 location 都可以代理请求或返回文件。此外,可以修改URI,以便将请求重定向到另一个 location 或虚拟服务器。 此外,可以返回特定的错误码,您可以配置特定页面以对应每个错误码。

1. 虚拟主机的配置

NGINX Plus 配置文件必须至少包含一个 server 指令以定义虚拟服务器。当NGINX Plus处理请求时,它首先选择将为请求提供服务的虚拟服务器。
虚拟服务器由 http 上下文中的 server 指令定义,例如:

http {
    server {
        # Server configuration
    }
}

可以在 http 上下文中添加多个 server 指令以定义多个虚拟服务器。

服务器配置块通常包括一个 listen 指令,用于指定服务器在其上侦听请求的 IP 地址和端口。接受IPv4和IPv6地址; 请将IPv6地址括在方括号中(。

下面的示例显示了侦听 IP 地址 127.0.0.1 和端口 8080 的服务器的配置:

server {
    listen 127.0.0.1:8080;
    # The rest of server configuration
}

如果省略端口,则使用标准端口。 同样,如果省略地址,服务器将侦听所有地址。 如果根本不包括listen指令,且“标准”端口为 80/tcp,“默认”端口为 8000/tcp,具体取决于超级用户权限。

如果有多个服务器匹配请求的IP地址和端口,NGINX Plus将根据 server 块中的 server_name 指令测试请求的 Host 头字段。 server_name 的参数可以是完整(完全)名称,通配符或正则表达式。 通配符是在其开头,结尾或两者上包含星号(*)的字符串; 星号匹配任何字符序列。 NGINX Plus对正则表达式使用Perl语法; 在它们之前用波浪号(〜)。 此示例说明了确切的名称。

server {
    listen      80;
    server_name example.org www.example.org;
    ...
}

如果多个 server_name 与 Host 头匹配,NGINX Plus 通过按以下顺序搜索名称并使用其找到的第一个匹配的名称:

  1. 完整名称
  2. 以星号开头的最长通配符,例如 * .example.org
  3. 以星号结尾的最长通配符,例如 mail.*。
  4. 首先匹配正则表达式(按照配置文件中的出现顺序)

如果主机头字段与服务器名称不匹配,NGINX Plus会将请求路由到其监听端口的默认服务器上。默认服务器是 nginx.conf 文件中列出的第一个服务器,除非您在 listen 指令中包括 default_server 参数,以明确地将某个服务器指定为默认服务器。

server {
    listen      80 default_server;
    ...
}

2. location 的配置

NGINX Plus可以根据请求的 URI 向不同的代理发送 traffic 或提供不同的文件。这些块是通过放置在 server 指令中的 location 指令定义的。

例如,您可以定义三个 location 块以指示虚拟服务器发送一些请求到一个代理服务器,将其他请求发送到另一个不同的代理服务器上,而其余请求则通过从本地文件系统传递文件来服务。

NGINX Plus 测试根据所有位置指令的参数请求URI,并应用在匹配位置中定义的指令。在每个位置块中,通常可能(除了少数例外)放置更多的位置指令,以进一步细化特定请求组的处理。
待更。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值