nginx服务的rewrite

nginx后端服务的指令

1)upstream指令 :设置后端服务器组的主要指令

Upstream name {}

2)server指令:用于设定组内的服务器

3)Ip_hash指令:

该指令用于实现会话保持功能,将某个客户端段请求多次重定向到组内同一台服务器上,保证客户端与服务器之间建立稳定的会话,只有当该服务器处于无效的时候,客户端的请求才会被下一个服务器接收

例子:

upstream backend {
ip_hash
server server1.example.com
server server2.example.com
}

rewrite重写

Rewrite 主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Nginx的Rewrite功能,在编译Nginx之前,需要编译安装PCRE库。

通过Rewrite规则,可以实现规范的URL、根据变量来做URL转向及选择配置。

1)地址转发和地址重写

地址转发后,客户端浏览器的地址显示是不变的,而地址重写后客户端浏览器地址栏的地址会转变为服务器确定的位置;

在一次地址转发的过程中,只产生一次网络请求,而地址转写的过程中一般会产生两次请求;

2)rewrire指令

该指令通过正则表达式的使用用来改变URI。可以同时存在一个或者多个指令,按顺序依次对URL进行匹配和处理

例子: rewrite myweb,com http://neweb.com/premanent

3)rewrite的使用

域名跳转

例1:

server
{
listen 80;
server_name jump.myweb.com
rewrite ^/ http://jump.myweb.info/;
}

客户端访问http://jump.myweb.name时URL将被nginx服务器重写为http://jump.myweb.info/,客户端得到的数据实际上也是有http://jump:myweb.info相应的

例2)

server {
listen 80
server_name jump.myweb.com jump.myweb.info;
if ($host ~ myweb\.info) ##正则表达式中的.要用\转义
{
rewrite ^(.*) http://jump.myweb.name$1 permanent;#多级域名跳转
}

客户端访问http://jump.myweb.info/reqsoure的时候。URL被重写为http://jump.myweb.name/reqsource,客户端的数据实际上由http://jump.myweb.name响应的。

例3)

server {
listen 80
server_name jump1.myweb.com
if ($http_host ~* ^(.*)\.myweb\.name$)
{
rewrite ^(.*) http://jump.myweb.name$1
break
} }

客户端访问http://jump.myweb.name/reqsource时,URL将被重写http:/jump.myweb.name/reqsource,实现了三级域名跳转

最新文章

  1. [Django]登陆界面以及用户登入登出权限
  2. RxJava 的使用入门
  3. Stationary point
  4. Codeforces Round #376 (Div. 2) C. Socks---并查集+贪心
  5. 64位操作系统弹出"Failed to load the JNI shared library “E:/2000/Java/JDK6/bin/..jre/bin/client/jvm.dll”
  6. 51nod1079中国剩余定理
  7. 【转】Android Application 对象介绍
  8. Linux - 简明Shell编程14 - 操作符(Operator)
  9. linux 下 命令行中运行 selenium chrome 问题
  10. RPM打包原理、示例、详解及备查
  11. 152. Maximum Product Subarray (Array; DP)
  12. 当Python与数模相遇
  13. rlwrap安装报错You need the GNU readline 解决方法
  14. 记我的第一个python爬虫
  15. 引入jQuery的src设置
  16. Codeforces D - High Load
  17. c++的类型转换(转)
  18. scrapy 爬取知乎问题、答案 ,并异步写入数据库(mysql)
  19. (二) ffmpeg filter学习--混音实现
  20. Linux From Scratch(从零开始构建Linux系统,简称LFS)(三)

热门文章

  1. Macpro搭建java自动化(selenium+chrome)
  2. erlang实现排列组合问题
  3. C# NAudio 变声
  4. IFB
  5. MySQL 树形结构 根据指定节点 获取其所有叶子节点
  6. Google Home Mini配置失败解决办法
  7. Python学习之GIL&进程池/线程池
  8. lua基础学习(六)
  9. 向tabcontrol中添加form
  10. 【Android Apk重新签名报错re-sign.jar之解决方法】