nginx.3——local的优先级和匹配方式

在http模块有server模块,在server模块才有location模块, location匹配的是uri

location 匹配一旦成功,就不向下匹配

一、location的分类:

1.精确匹配

location = /test 

2.正则匹配

location ^~ :前缀匹配,以什么为开头
location ~ 区分大小写匹配
location ~* 不区分大小写匹配
location !~ 区分大小写取反匹配
location !~* 不区分大小写取反匹配

 

3.通用匹配

location /test {}

4.一般匹配

location / {}

5.location的优先级(由左到右)

精确匹配---正则匹配--一般匹配
location = 完整路径 > location^~ > location ~,~* > location/test>location /

6、工作当中配置location的原则:

1.网站首页:都是精确匹配网站首页都是一 个静态页面。匹配网站的根工作目录
location = / {

}

2、处理静态文件的请求:目录匹配和后缀匹配
location ^~ /static {

}

location ~\.{jpg|png}$ {

}
3、一般规则: 动态请求,把动态请求转发的后端
location / {
	proxy_pass http://tomcat.server;
}

nginx的重定向

rewrite:结合nginx提供的全局变量和自定义的变量,结合正则表达式以及标志位实现usi重写以及重定向。

rewrite执行顺序:

1、执行server块里的rewrite
2、执行loaction里面定义的rewrite
3、选定location中的rewrite
rewrite中而可以执行if语句,只有if没有else

rewrite格式:

rewrie<reagex><replacemnet>[flag]
<regex>:正则表示式
<replacemnet>: 跳转的内容或者路径
[flag]: 标志位 标记
        flag:
        last:本条规则匹配完成后,继续向下匹配新的location uri规则
        break:本条规则匹配完成之后立即终止,页面内容变化,uri不变     用的比较多点
        redirect:临时重定向302 uri的地址会发生变化
        permanent:永久重定向301 uri的地址会发生变化

 

rewrite /test/(.*) /ky32/$1 permanent;
.*:匹配所有
$1:表示捕获组 $1应用正则表达式的第一个捕获组
从www.ky32.com/test/index.html 1jpg
跳转到www.ky32.com/ky32/index.html 1.jpg
会影响搜索引擎的权重
永久重定向会加入搜索引擎的排名
临时不会加搜索引擎的权重

报错internal redirection cycle while processing这个的原因:
处理请求时发生了重写或者内部重定向循环,进入了无限循环。nginx循环最多可以执行10次,会报错500

总结: rewrite和locationt都可以跳转,似乎有点相似,但是区别在
rewrite是在同一域名之内更改获取资源的路径
location是对路径访问控制。

基于ip跳转

公司业务新版本上线,用户访问网站统一显示固定的维护页面只有公司的192.168.233,61可以访问。

在vim /usr/local/nginx/conf/nginx.conf下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值