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作为通知方法,所以不要期待它有很高的性能和扩展性.鉴于这点和一些已知问 ...
随机推荐
- MS SQL CASE WHEN 的用法
前言 由于经常使用 case when 的2种情况方式,如果=1 则*** 否则 *** 结束.久而久之,都以为只能这么用,都忘记了Case WHEN 的用法. 示例 , ...
- web前端(9)—— CSS属性
属性 终于到css属性,前面就零零散散的用了什么color,font-size之类,本篇博文就专项的介绍它了 字体属性 font-family 此属性是设置字体样式的,比如微软雅黑,方正书体,华文宋体 ...
- 简单易懂的程序语言入门小册子(6):基于文本替换的解释器,引入continuation
当我写到这里的时候,我自己都吃了一惊. 环境.存储这些比较让人耳熟的还没讲到,continuation先出来了. 维基百科里对continuation的翻译是“延续性”. 这翻译看着总有些违和感而且那 ...
- 在泛微系统中修改AD密码的配置
参照文档: Windows server 2008 R2 安装AD域证书:https://blog.csdn.net/zhuyongru/article/details/81107839 配置泛微OA ...
- DELL 服务器报CPU 1 has an internal error (IERR)
重启服务器,然后按F2 进入到bios中,选择system bios settings这个选项,然后选择system profiles 进入,在这个里面麻烦将 C1E 和Cstate这两个选项改为di ...
- python反向生成数据库模型类
之前去的一家公司,去的时候项目已经好了,但是需要我根据数据库做一个后台管理系统,管理用户和其他的一些数据. 直接说方法 django框架 python manage.py inspectdb > ...
- JSP内置对象概述
JSP内置对象预先定义了九个这个的对象: request(请求) . response (响应). session (会话). application (应用程序). out . pageContex ...
- js模块化规范—CMD规范
CMD规范说明 专门用于浏览器端, 模块的加载是异步的 ,模块使用时才会加载执行,github地址 CMD基本语法 定义暴露模块 //定义有依赖的模块 define(function(require, ...
- Hive数据仓库工具安装
一.Hive介绍 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单SQL查询功能,SQL语句转换为MapReduce任务进行运行. 优点是可以通过类S ...
- poj2635
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/chaoweilanmao/article/details/33417423 这道题一看是大数题就知道 ...