您好,登錄后才能下訂單哦!
? 應用場景: 原域名即將不可用,現用新的域名代替
? 理論結果: 輸入舊域名,自動跳轉到新域名,且其它參數不變
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。