10.9 Rewrite原理
- Rewrite 通过正则表达式的使用改变URI(相对),可以同时存在一个或者多个指令,按照顺序依次对URL进行匹配和处理
- Rewrite 接受到的URI不包含host地址
- Rewrite介绍
- Rewrite是Nginx服务器提供的一个重要基本功能,其在Web服务器产品中几乎是必备的功能,用于实现URL的重写
- URL的重写是非常有用的功能,
- 地址重写 和 地址转发
- 地址重写 实际上是为了解决地址标准化
- 地址标准化
- 举个例子,比如在访问百度首页的时候,我们在地址中可以输入www.baidu.com,也可以输入
- www5.baidu.com www.baidu.com.cn www.baidu.cn baidu.com
- 他们都能准确的指向www.baidu.com
- 如果我们ping就会发现地址不同,我们可以在命令行测试下
- 在客户端看来,baidu首页同时对应了几个地址,实际上baidu服务器是在不同的地址中选择了确定的一个,www.baidu.com,进而返回服务器响应的,
- 这个过程就是地址标准化的过程,baidu.com这个地址在服务器中被改编为www.baidu.com的过程就是地址重定向的过程
- 地址转发(反向代理)
- 转发的概念最初和网页的访问并没有太大关系,它是指网络数据传输过程中数据分组到达路由器后该设备通过检查分组地址并将数据转到相邻局域网上的过程
- 后来该概念被用在了网页访问中,就出现了地址转发这一说法,是指一个域名指到另一个已有站点的过程
- 地址重写和地址转发的几点区别
- 地址转发后客户端浏览器地址栏的地址的显示是不改变的,而地址重写后客户端浏览器地址栏中的地址改编为服务器选择确定的地址
- 在一次地址转发整个过程中,只产生一次网络请求,而一次地址重写一般会产生两次请求
- 地址转发一般发生在同一站点的项目内,而地址重写没有该限制
- 地址转发到的页面可以不用全路径名表示,而地址重写到的页面必须使用完整的路径名表示
- 地址转发过程中,可以将客户端请求的request范围内属性传递给新的页面,但地址重写不可以
- 地址转发的速度较地址重写快
10.9 Rewrite原理的更多相关文章
- Java多线程系列--“JUC锁”10之 CyclicBarrier原理和示例
概要 本章介绍JUC包中的CyclicBarrier锁.内容包括:CyclicBarrier简介CyclicBarrier数据结构CyclicBarrier源码分析(基于JDK1.7.0_40)Cyc ...
- Java-二进制转10进制原理机制
任何文件在计算机储存时都是以二进制储存的,由 1和0 组成,如: 101010101010100111110100101010 现在有一组二进制数据: 10010110 那么他转成10进制是多少呢(我 ...
- 机器学习实战(Machine Learning in Action)学习笔记————10.奇异值分解(SVD)原理、基于协同过滤的推荐引擎、数据降维
关键字:SVD.奇异值分解.降维.基于协同过滤的推荐引擎作者:米仓山下时间:2018-11-3机器学习实战(Machine Learning in Action,@author: Peter Harr ...
- 2017.10.18 微机原理与接口----汇编语言语法和DOS功能调用
4.1 汇编语言中的基本数据 ·标识符 ·常数 ·变量具有三个属性: (1)段地址(SEG):变量所在段的段地址 (2)偏移地址(OFFSET):变量所在段内的偏移地址 (3)类型(TYPE):每个变 ...
- 一篇文章说透Nginx的rewrite模块
rewrite模块即ngx_http_rewrite_module模块,主要功能是改写请求URI,是Nginx默认安装的模块.rewrite模块会根据PCRE正则匹配重写URI,然后发起内部跳转再匹配 ...
- Java多线程系列--“JUC锁”11之 Semaphore信号量的原理和示例
概要 本章,我们对JUC包中的信号量Semaphore进行学习.内容包括:Semaphore简介Semaphore数据结构Semaphore源码分析(基于JDK1.7.0_40)Semaphore示例 ...
- 《精解Windows 10》
<精解Windows 10>全面深入讲解Windows 10操作系统的使用方法.本书共计14章内容.第一章简述Windows 10操作系统的一些变革:第二章介绍Modern 2.0界面的体 ...
- 成为Android高手必须掌握的28大项内容和10个建议
(一)成为Android高手必须掌握的8项基本要求 [1] Android操作系统概述1. Android系统架构. 2. Android利用设计理念. 3. ...
- 9. 图解分析Redis的RDB和AOF两种持久化机制的原理
1.RDB和AOF两种持久化机制的介绍 2.RDB持久化机制的优点3.RDB持久化机制的缺点4.AOF持久化机制的优点5.AOF持久化机制的缺点6.RDB和AOF到底该如何选择 我们已经知道对于一个企 ...
随机推荐
- idea项目在maven projects中显示灰色的解决办法。建新建module src变成标准的文件夹
在使用idea的过程中,有时会遇到其中一个maven模块变成灰色(可以通过view - tool windows -> maven projects 现实),如下所示: 造成这个的原因可能是忽略 ...
- Mybatis一对一、一对多、多对多查询。+MYSQL
场景:使用三张数据表:student学生表.teacher教师表.position职位表 一个学生可以有多为老师.一位老师可以有多个学生.但是一个老师只能有一个职位:教授.副教授.讲师:但是一个职位可 ...
- mzy,struts学习(三):action中获得servlet中三域一参的三种方法
package com.mzy.servlet; import java.util.Arrays; import java.util.Map; import javax.servlet.Servlet ...
- ProjectEuler 005题
题目: 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any ...
- freeswitch新增模块
概述 freeswitch的架构由稳定的核心模块和大量的外围插件式模块组成.核心模块保持稳定,外围模块可以动态的加载/卸载,非常灵活方便. 外围模块通过核心提供的 Public API与核心进行通信, ...
- springgateway
SpringGateAway: 先进行鉴权,然后进行路由,日志什么等等
- redis《三》连接池配置参数
参数 值 setTestWhileIdle() 在空闲时检查有效性 true setMinEvictableIdleTimeMillis() 连接最小空闲时间 1800000L setTimeBetw ...
- 利用sql语句复制一条或多条记录
sql 复制记录insert into article (id,class,title,content) select id,'2',title,content from article where ...
- 启动线程组报错:Error occurred starting thread group :test_1, error message:Invalid duration 0 set in Thread Group:test_1, see log file for more details
线程组基础信息都已经配置好,启动时报错,如下图: 排查原因:勾选了线程组调度器,并未设置参数 解决方案:取消勾选或者设置参数
- Spring(二)——IOC
一.入门 1.案例 1 public class Student { 2 3 private String name; 4 5 public Student() { 6 System.out.prin ...