Nignx location匹配及重定向
Nignx location匹配及重定向
- location
- 分类
- 匹配规则
- 优先级
- 示例
- 实际运用匹配规则
- 直接匹配网站根
- 处理静态文件请求
- 通用规则
- rewrite
- 跳转原理
- rewrite 语法
- fiag标记
- 示例
- 域名跳转
- 本机可访问,其他访问到别的界面
location
分类
精准匹配:location = / {}
一般匹配:location / {}
正则匹配:location ~ / {}
匹配规则
= :进行普通字符精确匹配,也就是完全匹配
^~ :表示普通字符匹配,使用前缀匹配 匹配即停止
~ :区分大小写的匹配
~* :不区分大小写的匹配
!~ :区分大小写的匹配取反
!~* :不区分大小写的匹配取反
优先级
- 精确匹配 =
- 前缀匹配 ^~
- 按文件中顺序的正则匹配 ~或 ~*
- 匹配不带任何修饰的一般匹配
- 通用匹配
示例
location = / {}
=为精确匹配 / ,主机名后面不能带任何字符串,比如访问 / 和 /data,则 / 匹配,/data 不匹配
再比如 location = /abc,则只匹配/abc ,/abc/或 /abcd不匹配location / {}
因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求
比如访问 / 和 /data, 则 / 匹配, /data 也匹配,
但若后面是正则表达式会和最长字符串优先匹配(最长匹配)location /documents/ {}
匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索其它 locationlocation /documents/abc {}
匹配任何以 /documents/abc 开头的地址,匹配符合以后,还要继续往下搜索其它 locationlocation ^~ /images/ {}
匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下匹配location ~* \.(gif|jpg|jpeg)$ {}
匹配所有以 gif、jpg或jpeg 结尾的请求location /images/abc/1.html {}
匹配/images/abc/1.html 文件,如果和正则 ~ /images/abc/1.html 相比,正则优先级更高优先级总结:
(location =) > (location 完整路径) > (location ^~ 路径) >
(location ~,~* 正则顺序) > (location 部分起始路径) > (location /)
实际运用匹配规则
直接匹配网站根
location = / {proxy_pass http://tomcat_server/;
}
通过域名访问网站首页比较频繁,使用这个会加速处理
这里直接转发给后端应用服务器
处理静态文件请求
目录匹配
location ^~ /static/ {root /webroot/static/;
}文件后缀匹配
location ~* \.(html|gif|jpg|jpeg|png|css|js|ico)$ {root /webroot/res/;
}
通用规则
转发带.php、.jsp后缀的动态请求到后端应用服务器
非静态文件请求就默认是动态请求location / {proxy_pass http://tomcat_server;
}
rewrite
rewrite功能就是使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标记实现URL重写以及重定向。
运用环境
- 更换域名后需要保持旧的域名能够转到新的域名上
- 某网页发生改变需要跳转到新的页面
- 网站防盗链
跳转原理
- 通过ngx_http_rewrite_module模块支持URL重写、支持if条件判断,不支持else
- 从一个location跳转到另一个location,循环最多可以执行10次,超过后nginx将返回500错误
- perl兼容正则表达式的语法规则匹配
- 重写模块set指令:创建新的变量并为其赋值
rewrite 语法
rewrite <regex> <replacement> <flag>;
regex:表示正则匹配规则
replacement:表示跳转后的内容
flag:表示rewrite支持的flag标记
fiag标记
last :本条规则匹配完成后,继续向下匹配新的location URI规则,一般用在 server 和 if 中
break :本条规则匹配完成即终止,不再匹配后面的任何规则,一般使用在 location 中
redirect :返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent :返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
示例
域名跳转
要求访问 www.hbh.com 时,跳转到www.xhl.com上
本机可访问,其他访问到别的界面
Nignx location匹配及重定向相关推荐
- nginx之location匹配规则
Nginx之location 匹配规则详解 有些童鞋的误区 1. location 的匹配顺序是"先匹配正则,再匹配普通". 矫正: location 的匹配顺序其实是" ...
- Nginx之location 匹配规则详解
Nginx 的语法形式是: location [=|~|~*|^~|@] /uri/ { - } ,意思是可以以" = "或" ~* "或" ~ &q ...
- nginx location 匹配 多个规则_你需要知道的Nginx配置二三事
Nginx是俄罗斯人Igor Sysoev基于C语言编写的十分轻量级的HTTP服务器,它主要有以下特点: 它是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器 ...
- nginx location 匹配 多个规则_nginx配置location与rewrite规则教程
nginx配置location与rewrite规则教程 location 教程 示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ...
- Nginx正则表达式与location匹配简介
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.nginx rewrite概述 1.概述 2. 跳转场景 3. 跳转实现 4. rewrite实际场景 二.nginx ...
- Nginx之正则表达式、location匹配简介以及rewrite重写
目录 一.Nginx 正则表达式 二.location 匹配简介 1.匹配规则格式 ①.精准匹配 ②.一般匹配 ③.正则匹配 2.常用的匹配规则 3.匹配的优先级 4.示例 5.实际网站使用中,至少有 ...
- web服务之Nginx中的location匹配与rewrite重写跳转
文章目录 常见的Nginx正则表达式 location location分为三类 location常用的匹配规则 location 优先级 location 示例说明 三个匹配规则定义 rewrite ...
- Nginx的location匹配与rewrite重写跳转
目录 Nginx的location匹配与rewrite重写跳转 一.常用的Nginx正则表达式 二.location 分类 location常用的匹配规则 优先级 location示例说明 Rewri ...
- 必学必会的nginx配置location匹配顺序总结
location 匹配规则: location 路径正则匹配: 符号 说明 ~ 正则匹配,区分大小写 ~* 正则匹配,不区分大小写 ^~ 普通字符匹配,如果该选项匹配,则,只匹配该选项,不再向下匹配其 ...
最新文章
- 【解决】Error:java: javacTask: source release 8 requires target release 1.8
- Java连接open fire_java – 为什么我不能连接到openfire服务器?
- go slice切片详解:定义、遍历、追加切片、切片拷贝
- git-ssh-keygen
- 分享一批国内常用的tracker地址
- android7.0提示定位,解决android7.0上某些PopuWindow显示位置不正确的问题
- java 合并流(SequenceInputStream)
- Delphi 中的字符串函数(6) - StrUtils 中的 Ansi 字符串函数
- 服务器2003系统黑屏怎么办,windows-server-2003 – Windows Server 2003 – 黑屏,光标在启动时...
- mysqld --initialize --console 没有 打印信息_JavaScript设计模式--装饰者模式
- GMaps.js - 轻松集成Google Maps的jQuery插件
- FPGA实现VGA显示(四)——————读取ROM显示彩色图片(a)
- 二维数组初始化_0基础学习C语言第七章:数组(2)
- 删除windows目录下的$NTUnintall$文件夹DOS命令
- centos 安装 LAMP
- Git amend 修改上次提交
- 在树莓派上做一个远程控制的小车(基于Python)
- python 对图片进行颜色转换
- python hasattr函数_Python hasattr()函数
- DoNet开源项目-基于jQuery EasyUI的后台管理系统
热门文章
- html左边移动属性,css左边偏移属性left、右边偏移属性right
- 限制在线网络游戏时间
- 半监督学习——LabelSpreading
- Win10正式专业版系统的激活
- 规则引擎Drools使用 第四篇Drools基础语法
- 英文版-直到世界尽头-To the Ends of the Earth
- 开源跨平台数据恢复testdisk源码分析
- 考研——现场确认,照片,时间,材料
- html用unicode编码转换汉字,汉字与Unicode编码相互转换(Js版)
- 安卓手机可以连接斑马系统吗_想做汽车领域安卓的斑马,在2017年都做了什么? - GeekCar...