Nginx服务——rewrite模块应用实战
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,Nginx服务--rewrite模块应用实战Demo 1:基于域名的跳转 应用场景: 原域名即将不可用,现用新的域名代替 理论结果: 输入旧域名,自动跳转到新域名,且其它参数不变DNS方向[roo
千家信息网最后更新 2025年12月02日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 0Nginx方向
[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安全错误
数据库的锁怎样保障安全
淄博学习网络技术有限公司
有什么免费学习软件开发的软件
数据库 pwd
传统软件开发者前景
网络安全检查成立领导小组
软件开发各个阶段所需人员
弘悦圣普网络技术有限公司
软件开发部署需要准备工作
镇互联网网络安全威胁处置
教研室服务器怎么用
提高软件开发效率尽量采用
我的世界怎么在服务器里面管理
k9数据库删除后怎么找到
软件开发的公司怎么样
如何加强公司内部网络安全
软件开发转ui设计
物理隔离期间网络安全吗
易语言数据库写入模块
超微服务器修改ipmi密码
深圳安可互联网科技有限公司
当前服务器好像开小差了
服务器登陆不上去怎么办
济南池源网络技术有限公司池振刚
传统软件开发者前景
文章表数据库设计
珍爱网 数据库
协裕网络技术有限公司
数据库新技术知识点总结
珍婚软件开发多久了
360网络安全大学实训平台