nginx Location 语法基础知识
URL地址匹配是Nginx配置中最灵活的部分 Location 支持正则表达式匹配,也支持条件匹配,用户可以通过location指令实现Nginx对动丶静态网页的过滤处理。
Nginx location 配置语法
location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
location 配置可以有两种配置方法
前缀 + uri(字符串/正则表达式)
@ + name
前缀含义
=:精确匹配(必须全部相等)
~:大小写敏感
~*:忽略大小写
^~:只需匹配uri部分
@:内部服务跳转
Location 基础知识
location 是在 server 块中配置。
可以根据不同的 URI 使用不同的配置(location 中配置),来处理不同的请求。
location 是有顺序的,会被第一个匹配的location 处理。
Location 配置演示
=精确匹配
location = / { #规则 }
#则匹配到 `http://www.example.com/` 这种请求。
~大小写敏感
location~ /Example/ { #规则 }
#请求示例#http://www.example.com/Example/ [成功]
#http://www.example.com/example/ [失败]
~*大小写忽略
location~* /Example/ { #规则 }
# 则会忽略 uri 部分的大小写
#http://www.example.com/Example/ [成功]
#http://www.example.com/example/ [成功]
^~只匹配以 uri 开头
location ^~ /img/ { #规则 }
#以 /img/ 开头的请求,都会匹配上
#http://www.example.com/img/a.jpg [成功]
#http://www.example.com/img/b.mp4 [成功]
@nginx内部跳转
location /img/ { error_page404@img_err; }
location@img_err { # 规则 }
#以 /img/ 开头的请求,如果链接的状态为 404。则会匹配到 @img_err 这条规则上。
规则分类
其中“~ ”和“~”以及“!~”和“!~”前缀表示正则location .
其他前缀(包括:“=”,“^~”和“@ ”)和无任何前缀的都属于普通location .
匹配规则
普通 location ”的匹配规则是“最大前缀.(特殊的是“=”和“^~”,前缀指令将严格匹配uri ,如果匹配,停止搜索.)正则 location ”的匹配规则是“顺序匹配,且只要匹配到第一个就停止后面的匹配.通用匹配 “/”最后匹配
先匹配普通 location ,再“考虑”匹配正则 location 。注意这里的“考虑”是“可能”的意思,也就是说匹配完“普通 location ”后,有的时候需要继续匹配“正则 location ”,有的时候则不需要继续匹配“正则 location ”。
两种情况下,不需要继续匹配正则 location :
( 1 )当普通 location 前面指定了“ ^~ ”,特别告诉 Nginx 本条普通 location 一旦匹配上,则不需要继续正则匹配;
( 2 )当普通location 恰好严格匹配上,不是最大前缀匹配,则不再继续匹配正则.
总结:正则 location 匹配让步普通 location 的严格精确匹配结果;但覆盖普通 location 的最大前缀匹配结果.
nginx Location 语法基础知识的更多相关文章
- Nginx入门篇-基础知识与linux下安装操作
我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...
- Nginx Location 语法,与简单配置[转]
一、介绍Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器 ...
- [nginx]location语法
location语法 location语法格式 location [=|~|~*|^~] uri { .... } location [=|~|~*|^~] uri {....} 指令 匹配标识 匹配 ...
- nginx location 语法
location 语法location 有”定位”的意思, 根据Uri来进行不同的定位.在虚拟主机的配置中,是必不可少的,location可以把网站的不同部分,定位到不同的处理方式上.比如, 碰到.p ...
- 附001.Nginx location语法规则
一 location规则 1.1 location语法 基本语法: location [=|~|~*|^~]/uri/{...} 修饰符释义: 1 = #表示精确严格匹配,只有请求的url路径与后面的 ...
- nginx location语法使用说明
语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因 ...
- C++笔记(2)——一些语法基础知识以及基本算法知识
今天和PAT无直接相关的关系,主要是关于一些语法/算法的笔记,因为我发现自己的基础还没有打扎实,有些时候看别人的代码还会觉得一头雾水,不明白代码的含义. 一些C/C++语法 先从语法开始吧.这部分很琐 ...
- python基础知识-(1)语法基础知识总结(转载)
1.Python标识符 在 Python 里,标识符有字母.数字.下划线组成. 在 Python 中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. Python 中的标识符是区分大 ...
- windows 版nginx 的一些基础知识
nginx的Windows版本使用原生Win32 API(非Cygwin模拟层).当前nginx/Windows只使用select作为通知方法,所以不要期待它有很高的性能和扩展性.鉴于这点和一些已知问 ...
随机推荐
- Linux 最小化安装后IP的配置(DHCP获取IP地址)
图形化Linux的DHCP好配置,我就不讲了.主要将一下Linux最小化安装后IP的配置: linux最小化安装后没有ifconfig这个命令: yum install net-tools.x86_6 ...
- MyBatis笔记----MyBatis查询表全部的两种方法:XML与注解
查询单条信息的在 http://www.cnblogs.com/tk55/p/6659285.html 已经有了 XML 修改UserMapper.xml <?xml version=&quo ...
- Vue2 学习笔记1
什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App,Vue语法也是可以用于进行手机App开发的,需要借助于Wee ...
- distribution 分发数据库 灾难恢复 备份恢复
参考: http://www.sqlservercentral.com/articles/Replication/117265/ 前提: 准备一台电脑,主机名和以前的分发数据库一致.并且安装s ...
- 简单易懂的程序语言入门小册子(5):基于文本替换的解释器,递归,不动点,fix表达式,letrec表达式
这个系列有个显著的特点,那就是标题越来越长.忽然发现今天是读书节,读书节多读书. ==下面是没有意义的一段话============================================== ...
- 约瑟夫环简介,问题以及java实现
问题:一群猴子排成一圈,按1,2,--.,n依次编号.然后从第一只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,再把它踢出去-------.,如此不停的进行下去,直到最后只剩下一只猴 ...
- npm方法
1. 使用npm 下载全局包 npm install 包名字 -g 安装 npm uninstall 包名字 -g 卸载 2. 安装卸载本地的包 (在哪里执行命令就把包安装在哪个目录的node_mod ...
- jdk旧版本下载
如何找到旧版本的jdk: 1.去oracle官网关于下载jdk的这一板块,https://www.oracle.com/technetwork/java/javase/downloads/index. ...
- C#、Java中的一些小知识点总结(持续更新......)
前言:在项目中,有时候一些小的知识,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小知识点,以备用,并持续更新...... 1.禁用DataGridV ...
- JWT 认证 以及Django 中的应用
jwt 认证 私钥.公钥.CA认证 用一套加密规则 加密和解密 RSA加密 (非对称的加密) 摘要算法:MD5 FTP/互联网下载软件校验MD5 私钥 --RSA算法-->公钥 RSA原理 加密 ...