今天本站给大家分享的是有关怎么在Nginx中使用重写模块,本站觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着本站一起来看看吧。
部署环境
一台Linux服务器(192。168 .142 .130)
一台测试主机windows 7
1,安装Nginx服务
[root @ localhost ~]# rpm-uvh http://nginx。org/packages/centos/7/no arch/RPMS/nginx-release-centos-7-0。el7。ngx。没有拱门。每分钟转数
#安装服务器官方源
[root @ localhost ~]# yuminstellginx-y
#好吃安装nginx2,修改服务器默认配置文件
[root @ localhost ~]# vim/etc/nginx/conf .d/默认值。conf # #修改默认配置文件
服务器{
列表80
server _ name www .accp。com##修改主机名
# charsetkoi 8-r;
access _ log/var/log/nginx/www .accp。com-access。log main##开启日志服务3,安装使团结在一起解析服务
[root @ localhost ~]# 美国高防vps yuminstallbind-y4,修改主配置文件(命名为。conf)
[root @ localhost ~]# vim/etc/named。主配置文件
选项{
监听端口53 { any};##监听所有
.
allow-query { any;};##允许所有5,修改区域配置文件(命名为。rfc1912.zones)
[root @ localhost ~]# vim/etc/named。RFC 1912。区域# #配置区域配置文件
zone’accp.com’IN{
typemaster
文件accp。com。区域’;##accp区域数据配置文件
允许-更新{无};
};6,修改区域数据配置文件(accp.com.zone)
[root @ localhost ~]# CD/var/named/
[root @ localhostnamed]# CP-pnamed。localhostaccp。com。区域# #复制模板
[root @ localhostnamed]# vimaccp。com。区域# #修改区域配置文件
$TTL1D
@INSOA@rname.invalid。(
1D;使恢复活力
1H;重试
1W;终止
3H);最小的
NS@
A127.0.0.1
wwwINA192.168.142.130##本机地址
[root @ localhostnamed]# systemctlstartnamed # #开启十进位计数制服务
[root @ localhostnamed]# systemctlstopfirewalld。服务# #关闭防火墙
[root @ localhostnamed]# setenforce0
[root @ localho活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看stnamed]# systemctlstartanginx # #开启服务器服务7,用测试机测试网页
8,修改配置文件,设置域名跳转
[root @ localhostnamed]# vim/etc/nginx/conf .d/默认值。conf # #修改配置文件
服务器{
列表80
server _ name www .accp。com
# charsetkoi 8-r;
access _ log/var/log/nginx/www .accp。com-access。log main
位置/
if($host=’www.accp.com’){##匹配如果域名是老域名
rewrite^/(.*)$ http://www .kgc。com/$ 1永久;##则永久设置跳转新域名
}
root/usr/share/nginx/html;
indexindex.htmlindex.htm;
}9,添加新域名解析
[root @ localhostnamed]# vim/etc/named。RFC 1912。区域
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/[root@localhostconf.d]#vimdefault.confserver{listen80;server_namewww.accp.com;#charsetkoi8-r;access_log/var/log/nginx/www.accp.com-access.logmain;#设置是否合法的IP标志set$rewritetrue;##设置变量为真#判断是否为合法的IPif($remote_addr="192.168.142.120"){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站点及main的网页页面
[root@localhostconf.d]#cd/usr/share/nginx/html/##切换到站点中[root@localhosthtml]#vimmain.html##编辑非法IP访问网页内容thisistestweb
[root@localhosthtml]#systemctlrestartnginx##重启Nginx服务
3,访问测试网页
应用场景3——基于旧,新域名跳转并加目录
将域名http://bbs.accp.com 下面的发帖都跳转到http://www.accp.com/bbs 且域名跳转后保持参数不变
1,修改Nginx默认配置文件
[root@localhost~]#cd/etc/nginx/conf.d/[root@localhostconf.d]#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/bbspermanent;##永久重定向跳转}
2,修改dns的区域数据配置文件(accp.com.zone)
[root@localhostconf.d]#cd/var/named/[root@localhostnamed]#vimaccp.com.zone##修改区域数据配置文件$TTL1D@INSOA@rname.invalid.(0;serial1D;refresh1H;retry1W;expire3H);minimumNS@A127.0.0.1bbsINA192.168.142.130[root@localhostnamed]#systemctlrestartnamed##重启解析服务[root@localhostnamed]#systemctlrestartnginx##重启Nginx服务[root@localhostnamed]#echo"nameserver192.168.142.130">/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/[root@localhostconf.d]#vimdefault.confserver{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区域数据配置文件
[root@localhostconf.d]#vim/var/named/accp.com.zone##修改区域数据配置文件wwwINA192.168.142.130[root@localhostconf.d]#systemctlrestartnamed##重启解析服务[root@localhostconf.d]#systemctlrestartnginx##重启Nginx服务
3,测试网页
应用场景5——基于目录下所有PHP文件跳转
访问http://www.accp.com/upload/1.php 跳转到首页
1,修改Nginx默认配置文件
[root@localhost~]#cd/etc/nginx/conf.d/[root@localhostconf.d]#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;##跳转到首页}[root@localhostconf.d]#systemctlrestartnginx##重启Nginx服务
2,测试网页
应用场景6——基于最普通url请求的跳转,访问一个具体的页面跳转到首页
1,修改Nginx默认配置文件
[root@localhost~]#cd/etc/nginx/conf.d/[root@localhostconf.d]#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;##跳转到首页}[root@localhostconf.d]#systemctlrestartnginx##重启Nginx服务
2,测试网页
以上就是怎么在Nginx中使用Rewrite模块,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
《怎么在Nginx中使用Rewrite模块》来自互联网同行内容,若有侵权,请联系我们删除!
还没有评论,来说两句吧...