Nginx服务——rewrite模块应用实战
发表于:2024-09-28 作者:千家信息网编辑
千家信息网最后更新 2024年09月28日,Nginx服务--rewrite模块应用实战Demo 1:基于域名的跳转 应用场景: 原域名即将不可用,现用新的域名代替 理论结果: 输入旧域名,自动跳转到新域名,且其它参数不变DNS方向[roo
千家信息网最后更新 2024年09月28日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安全错误
数据库的锁怎样保障安全
扬州顶优网络技术有限公司
sql 数据库镜像
杀死服务器是什么意思
网络安全基础设施信息怎么写
金百福软件数据库连不上
查询数据库中每个表的总行数
正泰网络技术有限公司官网
网络安全法看不懂是指什么
前实网络技术科技公司
数据库插入一张图片
中国网络安全与信息化工作会议
上海软件开发哪家最好
搜索链接不上服务器
软件开发学什么方向
企业级路由器服务器
津南区企业网络技术售后保障
数据库技术财务应用
数据库幻读定义
软件开发后的市场分析
长沙水电缴费软件开发团队
美国数据库黑客
服务器资料删除了还能找回吗
网络安全总结与展望
甘肃网络技术开发价格表格
服务器老主板设置
数据库技术财务应用
网络安全工程师可以在哪从业
惠普服务器打不开管理界面
数据库查询是否在日期范围内
杭州游卡网络技术学校