文档章节

NGINX location 在配置中的优先级

 酱醋茶丶
发布于 2015/10/29 10:02
字数 595
阅读 39
收藏 4
点赞 0
评论 0

location表达式类型

~ 表示执行一个正则匹配,区分大小写

~* 表示执行一个正则匹配,不区分大小写

^~ 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他location。

= 进行普通字符精确匹配。也就是完全匹配。

@ 它定义一个命名的 location,使用在内部定向时,例如 error_page, try_files

 

location优先级说明

在nginx的location和配置中location的顺序没有太大关系。正location表达式的类型有关。相同类型的表达式,字符串长的会优先匹配。

以下是按优先级排列说明:

 

等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他匹配项。

^~类型表达式。一旦匹配成功,则不再查找其他匹配项。

正则表达式类型(~ ~*)的优先级次之。如果有多个location的正则能匹配的话,则使用正则表达式最长的那个。

常规字符串匹配类型。按前缀匹配。

location优先级示例

配置项如下:

 

location = / {

    # 仅仅匹配请求 /

    [ configuration A ]

}

location / {

    # 匹配所有以 / 开头的请求。

    # 但是如果有更长的同类型的表达式,则选择更长的表达式。

    # 如果有正则表达式可以匹配,则优先匹配正则表达式。

    [ configuration B ]

}

location /documents/ {

    # 匹配所有以 /documents/ 开头的请求。

    # 但是如果有更长的同类型的表达式,则选择更长的表达式。

    # 如果有正则表达式可以匹配,则优先匹配正则表达式。

    [ configuration C ]

}

location ^~ /images/ {

    # 匹配所有以 /images/ 开头的表达式,如果匹配成功,则停止匹配查找。

    # 所以,即便有符合的正则表达式location,也不会被使用

    [ configuration D ]

}

location ~* \.(gif|jpg|jpeg)$ {

    # 匹配所有以 gif jpg jpeg结尾的请求。

    # 但是 以 /images/开头的请求,将使用 Configuration D

    [ configuration E ]

}

请求匹配示例

 

/ -> configuration A

/index.html -> configuration B

/documents/document.html -> configuration C

/images/1.gif -> configuration D

/documents/1.jpg -> configuration E

注意,以上的匹配和在配置文件中定义的顺序无关。

免费领取兄弟连IT教育原创linux运维工程师视频/细说linux教程,详情咨询官网客服:http://www.lampbrother.net/linux/

或者勾搭Q2430675018

欢迎加入linux交流群 478068715


© 著作权归作者所有

共有 人打赏支持
粉丝 7
博文 71
码字总数 90588
作品 0
昌平
nginx高级应用--------Location Url 配置

基本配置 为了探究nginx的url配置规则,当然需要安装nginx。我使用了vagrant创建了一个虚拟环境的ubuntu,通过apt-get安装nginx。这样就不会污染mac的软件环境。通过vragrant再创建一个项目进...

技术小胖子 ⋅ 2017/11/14 ⋅ 0

Nginx Location和Rewrite深入剖析

Nginx Location和Rewrite深入剖析 Nginx Location Nginx由内核和模块组成,其中内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端的请求映射到一个location bl...

JAYZ_HAO ⋅ 2017/09/10 ⋅ 0

Nginx的 alias 与 root 的区别

nginx貌似没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。 如果非要给nginx安上一个虚拟目录的说法,那就只有alias标签比较“像”,干脆来说说alias标签和root标签的区...

山哥 ⋅ 2011/08/05 ⋅ 0

nginx虚拟目录(alias与root的区别)

nginx貌似没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。 如果非要给nginx安上一个虚拟目录的说法,那就只有alias标签比较“像”,干脆来说说alias标签和root标签的区...

李长春 ⋅ 2012/02/14 ⋅ 0

nginx虚拟目录

nginx貌似没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。 如果非要给nginx安上一个虚拟目录的说法,那就只有alias标签比较“像”,干脆来说说alias标签和root标签的区...

神勇小白鼠 ⋅ 2011/07/12 ⋅ 0

Nginx配置初步

默认启动Nginx的时候,使用的配置文件是,安装路径/conf/nginx.conf文件 可以在nginx的时候,通过-c来指定要读取的配置文件 常见的配置文件有如下几个: nginx.conf:应用程序的基本配置文件 ...

徐叶青 ⋅ 2017/02/27 ⋅ 0

Nginx中的location优先级

在nginx配置文件中,location主要有这几种形式: 1. 正则匹配 location ~ /abc { } 2. 不区分大小写的正则匹配 location ~* /abc { } 3. 匹配路径的前缀,如果找到停止搜索 location ^~ /abc...

周云台 ⋅ 03/30 ⋅ 0

CentOS 7.4 Tengine安装配置详解(三)

九、根据HTTP响应状态码自定义错误页: 1、未配置前访问一个不存在的页面:http://192.168.1.222/abc/def.html,按F12后刷新页面 2、在server{}配置段中新增如下location: server { listen ...

Marion0728 ⋅ 05/14 ⋅ 0

日积(Running)月累(ZSSURE):nginx配置、putty连接保持以及AngularJS作用域$scope

背景: 日积月累系列主要用于自己日常的工作中的点点滴滴,这也是我希望并鼓励公司小伙伴们能够做到和坚持的。作为程序员每天的工作难免会遇到种种错误,各种问题。不能抱有奢望每天没有问题...

zssureqh ⋅ 2016/07/16 ⋅ 0

nginx操作及配置

nginx处理请求过程:在请求收到后定位到配置文件中描述的相应 location,然后由 handler 生成 response,再由 filter 进行处理。所以模块开发,可以是 handler 模块开发,也可以是 filter 模...

塞上名猪 ⋅ 2017/01/20 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 59分钟前 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 7

mysql in action / alter table

change character set ALTER SCHEMA `employees` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci ;ALTER TABLE `employees`.`t2` CHARACTER SET = utf8mb4 , COLLAT......

qwfys ⋅ 今天 ⋅ 0

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

MySQL

查看表相关命令 - 查看表结构    desc 表名- 查看生成表的SQL    show create table 表名- 查看索引    show index from  表名 使用索引和不使用索引 由于索引是专门用于加...

stars永恒 ⋅ 昨天 ⋅ 0

easyui学习笔记

EasyUI常用控件禁用方法 combobox $("#id").combobox({ disabled: true }); ----- $("#id").combobox({ disabled: false}); validatebox $("#id").attr("readonly", true); ----- $("#id").r......

miaojiangmin ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部