应用场景: 原域名即将不可用,现用新的域名代替
理论结果: 输入旧域名,自动跳转到新域名,且其它参数不变
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.1 www 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.conf location / { ####在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
实验成功,成功从旧域名自动跳转到新域名
应用场景: 网站维护时仅有个别用户能够正常进行访问,其余用户仅能访问维护页面
理论结果: 一台客户机进行访问时自动进行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地址,将会浏览到不同的页面(正常页面/维护页面)
应用场景: 将域名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
应用场景: 用户在输入域名后,误输入了全为数字的错误页面,应用后将自动跳转回指定页面
理论结果: 基于正则表达式的选择
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/
基于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格式的网页将自动跳转到首页
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。