应用间跳转

应用间跳转,第1张

Nginxrewrite跳转应用场景详解

本文主要介绍Nginx重写跳转应用场景的详细讲解,通过示例代码非常详细的介绍,对大家的学习或者工作有一定的参考价值。有需要的朋友下面和边肖一起学习。

应用场景1——基于域名的跳转

公司旧域名Www.accp.com因业务需求变化,需要替换为www.kgc.com
。旧域名
不能废除,其参数不变。

实验环境

Linux服务器(192.168.13.144)
测试机器win7

1、安装Nginx服务

[root@localhost~]#rpm-Uvhhttp://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm ##安装nginx官方源 警告:/var/tmp/rpm-tmp.vS0k20:头V4RSA/SHA1Signature,密钥ID7bd9bf62:NOKEY 准备中...#################################[100%] 正在升级/安装... 1:nginx-release-centos-7-0.el7.ngx#################################[100%] [root@localhost~]#yuminstallnginx-y##yum安装nginx

2、修改nginx的默认配置文件

[root@localhost~]#vim/etc/nginx/conf.d/default.conf##修改默认配置文件 server{ listen80; server_namewww.accp.com;##修改主机名 #charsetkoi8-r; access_log/var/log/nginx/www.accp.com-access.logmain;##开启日志服务

3、安装绑定解析服务

[root@localhost~]#yuminstallbind-y

4、修改主配置文件(named.conf)

[root@localhost~]#vim/etc/named.conf options{ listen-onport53{any;};##监听所有 listen-on-v6port53{::1;}; directory"/var/named"; dump-file"/var/named/data/cache_dump.db"; statistics-file"/var/named/data/named_stats.txt"; memstatistics-file"/var/named/data/named_mem_stats.txt"; recursing-file"/var/named/data/named.recursing"; secroots-file"/var/named/data/named.secroots"; allow-query{any;};##允许所有

5、修改区域配置文件(名为.rfc1912.zones)

[root@localhost~]#vim/etc/named.rfc1912.zones##配置区域配置文件 zone"accp.com"IN{ typemaster; file"accp.com.zone";##accp区域数据配置文件 allow-update{none;}; };

6、修改区域数据配置文件(accp.com.zone)

[root@localhost~]#cd/var/named/ [root@localhostnamed]#cp-pnamed.localhostaccp.com.zone##复制模板 [root@localhostnamed]#vimaccp.com.zone##修改区域配置文件 $TTL1D @[email protected].( 1D;refresh 1H;retry 1W;expire 3H);minimum NS@ A127.0.0.1 wwwINA192.168.13.144##本机地址 [root@localhostnamed]#systemctlstartnamed##开启dns服务 [root@localhostnamed]#systemctlstopfirewalld.service##关闭防火墙 [root@localhostnamed]#setenforce0 [root@localhostnamed]#systemctlstartnginx##开启nginx服务 [root@localhostnamed]#netstat-ntap|grepnginx##查看端口 tcp000.0.0.0:800.0.0.0:*LISTEN4093/nginx:master

7、用测试器测试网页


8、修改配置文件并设置域名跳转

[root@localhostnamed]#vim/etc/nginx/conf.d/default.conf##修改配置文件 server{ listen80; server_namewww.accp.com; #charsetkoi8-r; access_log/var/log/nginx/www.accp.com-access.logmain; location/{ if($host="www.accp.com"){##匹配如果域名是老域名 rewrite^/(.*)$http://www.kgc.com/$1permanent;##则永久设置跳转新域名 } root/usr/share/nginx/html; indexindex.htmlindex.htm; }

9、添加新域名解析

[root@localhostnamed]#vim/etc/named.rfc1912.zones zone"kgc.com"IN{ typemaster; file"kgc.com.zone";##accp区域数据配置文件 allow-update{none;}; }; [root@localhostnamed]#cp-p/var/named/accp.com.zone/var/named/kgc.com.zone ##复制区域数据配置文件为kgc的数据配置文件 [root@localhostnamed]#systemctlrestartnamed##重启解析服务 [root@localhostnamed]#systemctlrestartnginx##重启nginx服务

10、用旧域名访问并检查跳转


11、在旧域名后添加参数,看跳转到新域名时是否有参数


应用场景2-客户端IP访问跳转

公司的商业版上线,所有IP访问都显示固定维护页面。只有公司IP正常访问。

1、修改Nginx的默认配置文件

[root@localhost~]#cd/etc/nginx/conf.d/ [[email protected]]#vimdefault.conf server{ listen80; server_namewww.accp.com; #charsetkoi8-r; access_log/var/log/nginx/www.accp.com-access.logmain; #设置是否合法的IP标志 set$rewritetrue;##设置变量为真 #判断是否为合法的IP if($remote_addr="192.168.13.140"){ set$rewritefalse;##匹配合法IP,将变量设置为假,正常跳转页面 } #非法IP进行判断打上标记 if($rewrite=true){##匹配非法IP,跳转到main的网页 rewrite(.+)/main.html; } #匹配标记进行跳转站点 location=/main.html{##精确匹配 root/usr/share/nginx/html;##站点路径 } location/{ root/usr/share/nginx/html; indexindex.htmlindex.htm; }

2、创建非法IP网站和主网页

[[email protected]]#cd/usr/share/nginx/html/##切换到站点中 [root@localhosthtml]#vimmain.html##编辑非法IP访问网页内容 <h1>thisistestweb</h1> [root@localhosthtml]#systemctlrestartnginx##重启Nginx服务

3、访问网页


应用场景3——基于新旧域名,跳转并添加目录

所有http://bbs.accp.com域名下的帖子都会跳转到http://www.accp.com/bbs,域名跳转后参数保持不变。

1.修改Nginx的默认配置文件

[root@localhost~]#cd/etc/nginx/conf.d/ [[email protected]]#vimdefault.conf##修改默认配置文件 server{ listen80; server_namebbs.accp.com;##修改服务名称 #charsetkoi8-r; access_log/var/log/nginx/www.accp.com-access.logmain; location/post{##用location匹配post目录 rewrite(.+)http://www.accp.com/bbs$1permanent;##永久重定向跳转 }

2.修改DNS(accp.com.zone)的区域数据配置文件

[[email protected]]#cd/var/named/ [root@localhostnamed]#vimaccp.com.zone##修改区域数据配置文件 $TTL1D @[email protected].( 0;serial 1D;refresh 1H;retry 1W;expire 3H);minimum NS@ A127.0.0.1 bbsINA192.168.13.144 [root@localhostnamed]#systemctlrestartnamed##重启解析服务 [root@localhostnamed]#systemctlrestartnginx##重启Nginx服务 [root@localhostnamed]#echo"nameserver192.168.13.144">/etc/resolv.conf ##将解析服务器地址放到本地解析配置文件中

3.测试网页


应用场景4-基于参数匹配的跳转

进入http://www.accp.com/100-(100|200)-100.html跳转到http://www.accp.com页面。

1.修改Nginx的默认配置文件

[root@localhost~]#cd/etc/nginx/conf.d/ [[email protected]]#vimdefault.conf server{ listen80; server_namewww.accp.com; #charsetkoi8-r; access_log/var/log/nginx/www.accp.com-access.logmain; if($request_uri~^/100-(100|200)-(\d+).html$){ ##匹配正则开头为100-(100|200)-一次多次的整数html为结尾的 rewrite(.*)http://www.accp.compermanent;##永久重定向跳转到主页 }

2.修改dns区域数据配置文件

[[email protected]]#vim/var/named/accp.com.zone##修改区域数据配置文件 wwwINA192.168.13.144 [[email protected]]#systemctlrestartnamed##重启解析服务 [[email protected]]#systemctlrestartnginx##重启Nginx服务

3.测试网页


应用场景5——基于目录下所有PHP文件进行跳转

访问http://www.accp.com/upload/1.php跳转到主页

1.修改Nginx的默认配置文件

[root@localhost~]#cd/etc/nginx/conf.d/ [[email protected]]#vimdefault.conf##修改默认配置文件 server{ listen80; server_namewww.accp.com; #charsetkoi8-r; access_log/var/log/nginx/www.accp.com-access.logmain; location~*/upload/.*\.php${##匹配不分大小写,匹配upload后零次或多次以.php为结尾的 rewrite(.+)http://www.accp.compermanent;##跳转到首页 } [[email protected]]#systemctlrestartnginx##重启Nginx服务

2.测试网页


应用场景6——基于最常见的url请求跳转

访问特定页面以跳转到主页。

1.修改Nginx的默认配置文件

[root@localhost~]#cd/etc/nginx/conf.d/ [[email protected]]#vimdefault.conf##修改Nginx默认配置文件 server{ listen80; server_namewww.accp.com; #charsetkoi8-r; access_log/var/log/nginx/www.accp.com-access.logmain; location~*^/abc/123.html{##匹配某一个特定的网页 rewrite(.+)http://www.accp.compermanent;##跳转到首页 } [[email protected]]#systemctlrestartnginx##重启Nginx服务

2.测试网页


这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/774756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存