Nginx服务——rewrite模块应用实战
发表于:2025-02-11 作者:千家信息网编辑
千家信息网最后更新 2025年02月11日,Nginx服务--rewrite模块应用实战Demo 1:基于域名的跳转 应用场景: 原域名即将不可用,现用新的域名代替 理论结果: 输入旧域名,自动跳转到新域名,且其它参数不变DNS方向[roo
千家信息网最后更新 2025年02月11日Nginx服务——rewrite模块应用实战
Nginx服务--rewrite模块应用实战
Demo 1:基于域名的跳转
应用场景: 原域名即将不可用,现用新的域名代替
理论结果: 输入旧域名,自动跳转到新域名,且其它参数不变
DNS方向
[root@localhost ~]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm //yum库升级获取http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm警告:/var/tmp/rpm-tmp.zvmFF2: 头V4 RSA/SHA1 Signature, 密钥 ID 7bd9bf62: NOKEY准备中... ################################# [100%]正在升级/安装... 1:nginx-release-centos-7-0.el7.ngx ################################# [100%][root@localhost ~]# yum install nginx -y #安装nginx服务[root@localhost ~]# yum install bind -y[root@localhost ~]# vim /etc/named.conf ###按照下面进行修改options { listen-on port 53 { any; }; #监听所有的53端口 listen-on-v6 port 53 { ::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; }; #允许所有通过[root@localhost ~]# vim /etc/named.rfc1912.zones####添加如下zone "test.com" IN { type master; file "named.test";};[root@localhost ~]# cp -p /var/named/named.localhost /var/named/named.test[root@localhost ~]# vim /var/named/named.test#####按照下面进行修改$TTL 1D@ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1www IN A 192.168.142.128[root@localhost ~]# systemctl start named[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0
Nginx方向
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf####按下面进行更改server { listen 80; server_name www.test.com; #指定域名 charset utf-8; #指定字符集 access_log /var/log/nginx/test.com-access.log main; #指定access日志文件位置[root@localhost ~]# systemctl start nginx[root@localhost ~]# netstat -atnp | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4028/nginx: master
此时,能够对原域名进行正常的访问
为了满足实验要求,现对新域名添加dns区域
[root@localhost ~]# vim /etc/nginx/conf.d/default.conflocation / {####在location后面添加下面两行 if ($host = 'www.test.com') { rewrite ^/(.*)$ http://www.yun.com/$1 permanent; }[root@localhost ~]# vim /etc/named.rfc1912.zones###为新域名增添新的dns区域zone "yun.com" IN { type master; file "named.yun";};[root@localhost ~]# cp -p /var/named/named.test /var/named/named.yun[root@localhost ~]# systemctl restart named[root@localhost ~]# systemctl restart nginx
实验成功,成功从旧域名自动跳转到新域名
Demo 2:基于客户端IP跳转
应用场景: 网站维护时仅有个别用户能够正常进行访问,其余用户仅能访问维护页面
理论结果: 一台客户机进行访问时自动进行IP比对,按表进行分类
DNS方向
同Demo 1,不用进行改变。
Nginx方向
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf####按下面进行添加 location / { root /usr/share/nginx/html; index index.html index.htm; } set $ip true; #设定变量为true if ($remote_addr = "192.168.142.129") { #匹配IP地址为"192.168.142.129"时 set $ip false; #变量变更为false } if ($ip = true) { #匹配变量为true时 rewrite ^/(.*)$ /weihu.html; #跳转网页到维护页面 } location = /weihu.html { #匹配到维护页面时 root /usr/share/nginx/html; #指定网页站点 }[root@localhost ~]# systemctl restart nginx
此时,根据不同的ip地址,将会浏览到不同的页面(正常页面/维护页面)
Demo 3:基于旧、新域名跳转并添加目录
应用场景: 将域名http://bbs.test.com下面的发帖都跳转到 http://www.test.com/bbs,且域名跳转后保持参数 不变
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf###按照下面进行修改,在location段下面添加location /new {# if ($request_uri ~* ^/new) { rewrite /?(.*) http://www.test.com/bbs/$1 permanent;}[root@localhost ~]# systemctl restart nginx
Demo 4:基于参数匹配跳转到指定页面
应用场景: 用户在输入域名后,误输入了全为数字的错误页面,应用后将自动跳转回指定页面
理论结果: 基于正则表达式的选择
DNS方向
同上面所有,无需进行更改
Nginx方向
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf###按照下面进行修改,在location段下面添加if ($request_uri ~* ^/(\d*).html$) { #匹配以所有数字结尾的html文件 rewrite (.*) http://www.test.com permanent; #匹配零字或多字跳转到网站主页 }[root@localhost ~]# systemctl restart nginx
此时,在域名后添加一段数字组成的html网页将自动跳转回主页。例:http://www.test.com/123456.html
→http://www.test.com/
Demo 5:基于PHP文件、具体页面跳转回首页
基于PHP文件
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf###按照下面进行修改##location段后添加location ~* /upload/(.+)\.php$ { #基于全部php文件 rewrite (.*) http://www.test.com permanent; }[root@localhost ~]# systemctl restart nginx
没啥可说的,以php的文件均会自动跳转回首页
基于具体html页面
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf###按照下面进行修改##location段后添加 location ~* /test.html$ { #基于具体的html网页 rewrite (.*) http://www.test.com permanent; }[root@localhost ~]# systemctl restart nginx
同上,访问某个具体网页文件就会跳转回首页
基于任意的html页面
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf###按照下面进行修改##location /后面添加 if ($request_uri ~* ^/new/(.+)\.html$) { #匹配到任意html页面 rewrite (.*) http://www.test.com permanent; #跳转到首页 }[root@localhost ~]# systemctl restart nginx
此时,访问任意的html格式的网页将自动跳转到首页
感谢阅读!!
域名
页面
文件
应用
方向
网页
首页
场景
参数
变量
数字
理论
用户
结果
输入
服务
不同
成功
主页
区域
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网红相机软件开发
了解眼镜行业软件开发商
初中级软件开发工程师
hp服务器装虚拟平台
毕业生生源数据库fxmc
网络安全之分析题
软件开发的图片
显卡刀卡是服务器显卡吗
湖南省软件开发工程师培训多少钱
协同软件开发的服务商
查询游戏所在服务器
公司软件开发个人化
华为服务器ps报错
万利棋牌软件开发
软件开发商和代理商的区别
惠普服务器认证证书
存储设备怎么和服务器链接
公寓网络技术总结
嘉定区品质网络技术采购信息
北京服务器维修技术云空间
医学meta分析有哪些数据库
无线网络安全问题评估实验
鲜老虎网络技术有限公司
2018年国家网络安全周是
网络技术安全交底
网络技术创业方向
a服务器模型免费下载
东莞法盛互联网科技怎么样
pc客户端软件开发工资
系统数据库修复工具