Nginx URL 重写

本文详细介绍了Nginx的URL_rewrite功能,包括其模块介绍、应用场景,如域名变更、用户跳转和伪静态。重写原理涉及用户请求、Nginx重定向及业务服务器响应。讲解了URL重写实现的语法,如set、if、return和rewrite指令,以及相关的重写规则。此外,还探讨了不同类型的URL重定向标志,如last、break、redirect和permanent,并给出了具体的重写案例。
摘要由CSDN通过智能技术生成
URL_rewrite介绍

· rewrite模块(ngx_http_rewrite_moduke)

· Rewrite仅仅是Nginx服务器提供的一个重要功能。几乎是所有的web产品必备技能,用于实现 URL重写。URL重写是非常有用的功能,比如它可以在我们在改变网站结构后,不需要客户端修改原来的书签,也不需要其他网站修改对我们网站的友情链接,还可以在一定程度上提高网站的安全性,能够让我们的网站显得更专业.

· Nginx服务器Rewrite功能的实现是依赖于PCRE(perl Compatible Regular Experssion.Perl兼容的正则表达式)的支持,所以在编译安装Nginx之前,需要安装PCRE库.

应用场景

·域名变更(京东 www.360buy–>www.jd.com)
·用户跳转(从某个连接跳到另一个连接)
· 伪静态场景(便于CDN缓存动态页面数据)

域名变更:
京东的原域名为http://www.360buy.com,新域名为http://www.jd.com,京东在推出新域名的同时,不能将老域名干掉不使用,因为仍有很多老用户并不知道新域名,如果干掉了老域名,那么在新域名推广的时间损失的老用户和人民币也是很可怕的。所以就可以使用域名重写,这样用户在访问http://www.360buy.com时网页会自动跳转到http://www.jd.com。这样就平稳的从老域名过渡到新域名,避免了老用户和人民币的流失。

用户跳转:
老链接已经没了,已经变成了新链接,那怎么能引导用户呢?用户是不知道的。作为一个运维人员,永远不要要求用户去做什么,用户不习惯就不来访问了,不访问了还怎么赚钱!这样直接从老链接跳转到新连接即可,用户是感觉不到变化的。

伪静态场景:
CDN缓存的是静态数据,但是我们想让他也缓存动态数据,这样就完美了。但是按照常理是不可能的,但我们还想这样做,可以将动态页面做成静态页面来缓存,也就是伪静态,便于CDN存储。

URL重写原理
在这里插入图片描述
1) 首先用户向Nginx发起请求
2) Nginx接收到请求,重写URL,将新的URL返回给用户的浏览器
3) 用户的浏览器使用新的URL去访问业务服务器
4) 业务服务器将数据返回给用户的浏览器

URL rewrite实现

URL模块语法
1) set 设置变量
2) if 负责语句中的判断
3) return 返回返回值或URL
4) break 终止后续的rewrite规则
5) rewrite 重定向URL

Rewrite规则相关指令

set指令 自定义变量
Syntax(语法)
set $variable value;
Default:

Context (作用域)
server,location,if

·将http://www.baidu.com 重写为http://www.baidu.com/zhouxiongxiong

代码:

location / {
   
     set $name zhouxiongxiong
     rewrite ^(.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值