详解Nginx如何配置Web服务器的示例代码

详解Nginx如何配置Web服务器的示例代码,第1张

详解Nginx如何配置Web服务器的示例代码

本文详细介绍了详细解释Nginx如何配置Web服务器的示例代码。根据示例代码,在原文中非常详细,对大家的学习培训或者工作都有一定的参考价值。有必要的朋友陪我去了解一下。

简介

今天的密钥分享如何将NGINX配置为Web服务器,包括以下几个部分:

  • 设置虚拟服务器
  • 装备零件
  • 应用自变量
  • 返回特殊状态代码
  • 调用HTTP响应
  • 在高层次人才上,使用NGINX作为Web服务器有一些难题,比如定义它解决什么URL,如何处理这类URL上的资源的HTTP请求。在基本级别上,提供了一组虚拟服务器来处理对特殊域或IP地址的请求的解析。

    用于HTTP总流量的每个虚拟服务器定义了一个称为位置的唯一配置实例,该实例 *** 纵特殊URI组合的解决方案。每个部分都定义了投射到该部分的自己的请求所产生的情况。NGINX可以很好的控制整个过程。每个部分都可以向代理请求或返回文档。此外,可以更改URI,以便于请求跳转到另一个位置或虚拟服务器。此外,您可以返回到特殊的错误代码,也可以提供特殊的网页来匹配每个错误代码。

    1。设置虚拟服务器

    NGINX环境变量必须包含至少一条服务器指令来定义虚拟服务器。当NGINX解决请求时,它首先选择提出请求的虚拟服务器。

    虚拟服务器是由http上下文中的服务器指令定义的,例如:

    http{ server{ #Serverconfiguration } }

    可以将几个服务器指令添加到http上下文中,以定义几个虚拟服务器。

    服务器供应块通常包含一个监听指令,用于指定服务器监听请求的IP地址和端口号(或Unix域套接字和通道)。接受IPv4和IPv6详细地址;放置方括号(。

    以下示例显示了监控IP地址127.0.0.1和端口号8080的服务器的配置:

    server{ listen127.0.0.1:8080; #Therestofserverconfiguration }

    如果省略端口号,则应用标准端口号。同样,如果省略了详细地址,服务器将监听所有详细地址。如果不包含listen指令,“标准”端口号为80/tcp,“默认”端口号为8000/tcp,实际上在于非凡的用户权限。

    如果有几个服务器匹配请求的IP地址和端口号,NGINX将根据服务器块中的server_name指令检测请求的服务器头域。server_name的主要参数可以是使用通配符或正则表达式的详细(精确)名称。使用的通配符是一个字符串数组,开头;其末端或两者都包括星号(*)。星号与所有标识符编码序列匹配。NGINX对正则表达式使用Perl英语语法;他们之前用的是波浪号()。此示例显示了一个准确的名称。

    server{ listen80; server_nameexample.orgwww.example.org; ... }

    2。配备的零件

    NGINX可以将总流量推给不同的代理,或者根据请求URI呈现不同的文档。这个块由放置在服务器指令中的位置指令定义。

    例如,您可以定义三个位置块,以指示虚拟服务器将一些请求推送到一个代理服务器,将其他请求发送到不同的代理服务器,并根据从本地系统文件传输的文档呈现其他请求。

    NGINX检测根据所有位置指令的主要参数请求URIs,并使用配置位置中定义的指令。在每个位置块中,通常可以(除了一些)放置大量的位置指令,以进一步优化特殊组请求的解析。

    注意:在本示例教程中,英语单词location仅指location的上下文。

    location指令有两种主要参数:作为前缀的字符串数组(pathname)和正则表达式。要将请求URI匹配为前缀字符串数组,请确保以前缀字符串数组开始。

    以下样例部分以pathname为主要参数,匹配以/some/path/开头的请求URI,如/some/path/document.html,与/my-site/some/path不匹配,因为/some/path没有出现在这个URI的开头。

    location/some/path/{ ... }

    正则表达式以前是区分英语格搭配的波标(~),或者是不区分英语格搭配的波标(~*)。下面的例子将包括字符串数组的URI。html或者。html匹配一切。

    location~\.html?{ ... }

    为了找到与URI最匹配的位置,NGINX首先将URI与前缀字符串数组的位置进行比较。然后,使用正则表达式检索位置。

    位置上下文可以包括定义如何分析请求的指令-呈现静态数据文件或将请求发送到代理的服务器。在下面的示例中,带有第一个位置上下文的请求将显示/data/images文件目录中的文档,带有第二个位置的请求将被发送到安装了www.example.com域内容的代理服务器。

    server{ location/images/{ root/data; } location/{ proxy_passhttp://www.example.com; } }

    root命令指定系统文件路径,在该路径中检索要呈现的静态数据文档。与该部分相关联的请求URI将被添加到获取要呈现的静态数据文档的全名的方式中。上例中,响应/images/logo.png的请求,NGINX显示服务器的本地匹配文档为:/data/data/images/logo.png。

    proxy_pass指令将请求发送到配备有应用程序的URL浏览代理服务器。然后将代理服务器的响应发送给手机客户端。在上面的示例中,所有不是以/images/开头的URIs请求都将被发送到代理的服务器(即www.example.com)。

    3。应用独立变量

    环境变量中的自变量可以用来根据定义的条件使NGINX进程的请求有所不同。自变量是在 *** 作期间测量的命名值,它是指令的主要参数。自变量以其名称开头的$(USD)标记表示。根据自变量NGINX定义信息内容,比如被求解请求的特征。

    有很多预定义的自变量,比如关键的HTTP自变量。您可以使用set、map和geo指令定义自定义自变量。大多数独立变量是在 *** 作过程中测量的,包括与特殊要求相关的信息。例如,$remote_addr包含手机客户端的IP地址,$URI存储当前的URI值。

    4。返回特殊状态代码

    一些URLURIs必须立即返回带有特殊错误或跳转代码的响应,例如当网页被临时移动或永久移动时。一个非常简单的方法是应用返回指令。例如,回到找不到的404状态代码:

    location/wrong/url{ return404; }

    返回的第一个主要参数是响应代码。可以选择的第二个主要参数可以是跳转URL(代码301、302、303和307)或返回到响应正文中的文本。例如:

    location/permanently/moved/url{ return301http://www.example.com/moved/here; }

    背对背指令可以包含在位置和服务器的上下文中。

    5。调用HTTP响应

    有时需要调用或更改HTTP响应中的内容,并用另一个字符串数组替换一个字符串。sub_filter指令可用于定义要使用的调用。该指令应用独立变量和替代链,使更复杂的变化成为可能。

    例如,可以更改并引入代理服务器之外的正连接:

    location/{ sub_filter/blog//blog-staging/; sub_filter_onceoff; }

    另一个示例将模式从http://更改为http://,并将本地主机地址从请求头域更改为IP地址。Sub_filter_once指令告诉NGINX在一个位置连续使用Sub_filter伪指令:

    location/{ sub_filter'href="http://127.0.0.1:8080/''href="http://$host/'; sub_filter'imgsrc="http://127.0.0.1:8080/''imgsrc="http://$host/'; sub_filter_onceon; }

    必须注意,如果生成另一个子过滤器配置,子过滤器改变所应用的响应的一部分将不会被替换。

    关于Nginx如何详细配置Web服务器的这篇文章到此结束。有关Nginx配置Web服务器的大量信息,请搜索您以前的文章或再次访问下面的相关文章。期待你以后的申请!

    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/774541.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存