资讯专栏INFORMATION COLUMN

nginx学习之——location

BoYang / 813人阅读

摘要:需要注意的是,当普通匹配的结果是严格精确的,则停止匹配返回结果。文字说明进行精准匹配,检查是否在精准匹配模式下,匹配成功,若成功则停止检查。判断是否可以进行正则匹配,如果存在符号的段表示不进行正则匹配,立即返回结果。

Location 匹配模式 一、语法
location [=|~|~*|^~] uri{
    root /var/www/html
    index index.html index.htm
}
1. 普通模式
中括号中的符号 ,表示不同的匹配模式,若不填写,则表示普通模式
2. 精确模式 =
location = /web/index.html {
    root /var/www/html
    index index.html index.htm
}

仅当访问的域名后的地址为“/web/index.html”时 匹配成功。

需要注意的是,当普通匹配的结果是严格精确的,则停止匹配返回结果。

3. 正则模式 ~ / ~
~  表示区分大小写 
~* 表示不区分大小写

location ~* /.(jpg|gif|jpeg) {
    root /var/www/html/resource/images
}

当访问的资源是一个图片时 匹配成功

4. 非正则模式 ^~

^表示“非”,~表示正则,连起来就表示"非正则",既不使用正则匹配

  在不使用“非正则”的时候,执行完普通匹配后,并不会返回匹配结果,而是继续正则匹配。如果使用了“非正则模式”,则在执行完普通模式后执行非正则模式,一旦匹配(不需要精确),马上返回结果。

二、Location流程图

  location 的指令与编辑顺序无关,这句话不全对。对于普通 location 指令,匹配规则是:最大前缀匹配(与顺序无关),如果恰好是严格精确匹配结果或者加有前缀“ ^~ ”或“ = ”(符号“ = ”只能严格匹配,不能前缀匹配),则停止搜索正则 location ;但对于正则 location 的匹配规则是:按编辑顺序逐个匹配(与顺序有关),只要匹配上,就立即停止后面的搜索。

文字说明

进行精准匹配,检查是否在=精准匹配模式下,匹配成功,若成功则停止检查。

进行普通匹配,匹配完成后,记录匹配到的最长的结果,如果这个结果恰好是完全精准的匹配,则把该结果看做是精准匹配,会停止检查,立即返回该结果。

判断是否可以进行正则匹配,如果存在^=符号的location段,表示不进行正则匹配,立即返回结果。

按照书写顺序正则匹配,匹配到立即返回结果

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39576.html

相关文章

  • laravel习之nginx配置站点

    摘要:前言设置项目的域名站点的时候,需要对做一些对应的重写配置,用来做相关路由,否则会报。 前言 设置laravel项目的域名站点的时候,需要对nginx做一些对应的重写rewrite配置,用来做相关路由,否则会报404。 nginx.conf配置 server { listen 80; server_name xxx.com; #域名 root /data/www...

    frank_fun 评论0 收藏0
  • laravel习之nginx配置站点

    摘要:前言设置项目的域名站点的时候,需要对做一些对应的重写配置,用来做相关路由,否则会报。 前言 设置laravel项目的域名站点的时候,需要对nginx做一些对应的重写rewrite配置,用来做相关路由,否则会报404。 nginx.conf配置 server { listen 80; server_name xxx.com; #域名 root /data/www...

    Jaden 评论0 收藏0
  • nginx习之——rewrite

    摘要:当前请求在指令中指定的值。请求主机头字段,否则为服务器名称。客户端信息客户端信息这个变量可以限制连接速率。已经经过验证的用户名。请求使用的协议,通常是或。请求到达服务器的端口号。包含请求参数的原始,不包含主机名,如。 rewrite配置在server{}、location{}、if{}段中 ,对Url中除去域名和参数的字符串起作用 一、语法:rewrite regex replacem...

    Lavender 评论0 收藏0
  • Docker习之Dockerfile 构建镜像(3)

    摘要:我们可以了解到,镜像的定制实际上就是定制每一层所添加的配置文件。指令之指令的目的就是来指定基础镜像。指令之指令是用来执行命令行命令的。由于命令行的强大能力,指令在定制镜像时是最常用的指令之一。构建镜像这里我们使用了命令进行镜像构建。 我们可以了解到,镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜...

    Lavender 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<