應(yīng)用場景1——基于域名的跳轉(zhuǎn)
公司舊域名 ,因業(yè)務(wù)需求有變更,需要使用新域名www.kgc.com 代替
1.不能廢除舊域名
2.從舊域名跳轉(zhuǎn)到新域名,且保持其參數(shù)不變
部署環(huán)境
一臺linux服務(wù)器(192.168.142.130)
一臺測試主機windows 7
1,安裝nginx服務(wù)
[root@localhost?~]#?rpm?-uvh?http://nginx.org/packages/centos/7/noarch/rpms/nginx-release-centos-7-0.el7.ngx.noarch.rpm #安裝nginx官方源 [root@localhost?~]#?yum?install?nginx?-y?? #yum安裝nginx
2,修改nginx默認(rèn)配置文件
[root@localhost?~]#?vim?/etc/nginx/conf.d/default.conf?##修改默認(rèn)配置文件 server?{ ????listen????80; ????server_name?www.accp.com;??##修改主機名 ????#charset?koi8-r; ????access_log?/var/log/nginx/www.accp.com-access.log?main;??##開啟日志服務(wù)
3,安裝bind解析服務(wù)
[root@localhost?~]#?yum?install?bind?-y
4,修改主配置文件(named.conf)
[root@localhost?~]#?vim?/etc/named.conf? options?{ ????????????????listen-on?port?53?{?any;?};?????##監(jiān)聽所有 ????????????????... ????????????????allow-query???{?any;?};??????##允許所有
5,修改區(qū)域配置文件(named.rfc1912.zones)
[root@localhost?~]#?vim?/etc/named.rfc1912.zones??##配置區(qū)域配置文件 zone?"accp.com"?in?{ ????????????????type?master; ????????????????file?"accp.com.zone";???????##accp區(qū)域數(shù)據(jù)配置文件 ????????????????allow-update?{?none;?}; };
6,修改區(qū)域數(shù)據(jù)配置文件(accp.com.zone)
[root@localhost?~]#?cd?/var/named/? [root@localhost?named]#?cp?-p?named.localhost?accp.com.zone??##復(fù)制模板 [root@localhost?named]#?vim?accp.com.zone??##修改區(qū)域配置文件 $ttl?1d @????in?soa?@?rname.invalid.?( ????????????????????????????????????1d???;?refresh ????????????????????????????????????1h???;?retry ????????????????????????????????????1w???;?expire ????????????????????????????????????3h?)??;?minimum ????????????????ns???@ ????????????????a????127.0.0.1 www?in?a????192.168.142.130?????????##本機地址 [root@localhost?named]#?systemctl?start?named???##開啟dns服務(wù) [root@localhost?named]#?systemctl?stop?firewalld.service??##關(guān)閉防火墻 [root@localhost?named]#?setenforce?0 [root@localhost?named]#?systemctl?start?nginx??##開啟nginx服務(wù)
7,用測試機測試網(wǎng)頁
8,修改配置文件,設(shè)置域名跳轉(zhuǎn)
[root@localhost?named]#?vim?/etc/nginx/conf.d/default.conf?##修改配置文件 ??server?{ ??????listen????80; ??????server_name?www.accp.com; ??????#charset?koi8-r; ??????access_log?/var/log/nginx/www.accp.com-access.log?main; ??????location?/?{ ??????????if?($host?=?"www.accp.com"){????##匹配如果域名是老域名 ??????????????????rewrite?^/(.*)$?http://www.kgc.com/$1?permanent;??##則永久設(shè)置跳轉(zhuǎn)新域名 ??????????} ??????????root??/usr/share/nginx/html; ??????????index?index.html?index.htm; ??????}
9,添加新域名解析
[root@localhost?named]#?vim?/etc/named.rfc1912.zones? zone?"kgc.com"?in?{ ????????????????type?master; ????????????????file?"kgc.com.zone";???????##accp區(qū)域數(shù)據(jù)配置文件 ????????????????allow-update?{?none;?}; }; [root@localhost?named]#?cp?-p?/var/named/accp.com.zone?/var/named/kgc.com.zone ##復(fù)制區(qū)域數(shù)據(jù)配置文件為kgc的數(shù)據(jù)配置文件 [root@localhost?named]#?systemctl?restart?named??##重啟解析服務(wù) [root@localhost?named]#?systemctl?restart?nginx???##重啟nginx服務(wù)
10,用舊域名訪問,查看網(wǎng)頁跳轉(zhuǎn)
11,舊域名后加上參數(shù),查看跳轉(zhuǎn)新域名時是否有參數(shù)
應(yīng)用場景2——基于客戶端ip訪問跳轉(zhuǎn)
公司業(yè)務(wù)版本上線,所有ip訪問任何內(nèi)容都顯示一個固定維護頁面,只有公司ip訪問正常
1,修改nginx默認(rèn)配置文件
[root@localhost?~]#?cd?/etc/nginx/conf.d/ [root@localhost?conf.d]#?vim?default.conf? server?{ ????listen????80; ????server_name?www.accp.com; ????#charset?koi8-r; ????access_log?/var/log/nginx/www.accp.com-access.log?main; ????#設(shè)置是否合法的ip標(biāo)志 ????set?$rewrite?true;?????##設(shè)置變量為真 ????#判斷是否為合法的ip ????if?($remote_addr?=?"192.168.142.120"){ ????????set?$rewrite?false;??##匹配合法ip,將變量設(shè)置為假,正常跳轉(zhuǎn)頁面 ????} ????#非法ip進行判斷打上標(biāo)記 ????if?($rewrite?=?true){????????##匹配非法ip,跳轉(zhuǎn)到main的網(wǎng)頁 ????????rewrite?(.+)?/main.html; ????} ????#匹配標(biāo)記進行跳轉(zhuǎn)站點 ????location?=?/main.html?{???????##精確匹配 ????????root?/usr/share/nginx/html;??##站點路徑 ????} ????location?/?{ ????????root??/usr/share/nginx/html; ????????index?index.html?index.htm; ????}
2,創(chuàng)建非法ip站點及main的網(wǎng)頁頁面
[root@localhost?conf.d]#?cd?/usr/share/nginx/html/?##切換到站點中 [root@localhost?html]#?vim?main.html??##編輯非法ip訪問網(wǎng)頁內(nèi)容 <h1>this?is?test?web</h1> [root@localhost?html]#?systemctl?restart?nginx??##重啟nginx服務(wù)
3,訪問測試網(wǎng)頁
應(yīng)用場景3——基于舊,新域名跳轉(zhuǎn)并加目錄
將域名http://bbs.accp.com 下面的發(fā)帖都跳轉(zhuǎn)到http://www.accp.com/bbs 且域名跳轉(zhuǎn)后保持參數(shù)不變
1,修改nginx默認(rèn)配置文件
[root@localhost?~]#?cd?/etc/nginx/conf.d/ [root@localhost?conf.d]#?vim?default.conf??##修改默認(rèn)配置文件 server?{ ????listen????80; ????server_name?bbs.accp.com;??##修改服務(wù)名稱 ????#charset?koi8-r; ????access_log?/var/log/nginx/www.accp.com-access.log?main; ????location?/post?{?????##用location匹配post目錄 ????????rewrite?(.+)?http://www.accp.com/bbs$1?permanent;??##永久重定向跳轉(zhuǎn) ????}
2,修改dns的區(qū)域數(shù)據(jù)配置文件(accp.com.zone)
[root@localhost?conf.d]#?cd?/var/named/ [root@localhost?named]#?vim?accp.com.zone??##修改區(qū)域數(shù)據(jù)配置文件 $ttl?1d @????in?soa?@?rname.invalid.?( ??????????????????????????0????;?serial ??????????????????????????1d???;?refresh ??????????????????????????1h???;?retry ??????????????????????????1w???;?expire ??????????????????????????3h?)??;?minimum ????????ns???@ ????????a????127.0.0.1 bbs?in?a????192.168.142.130 [root@localhost?named]#?systemctl?restart?named??##重啟解析服務(wù) [root@localhost?named]#?systemctl?restart?nginx???##重啟nginx服務(wù) [root@localhost?named]#?echo?"nameserver?192.168.142.130"?>?/etc/resolv.conf? ##將解析服務(wù)器地址放到本地解析配置文件中
3,測試網(wǎng)頁
應(yīng)用場景4——基于參數(shù)匹配的跳轉(zhuǎn)
瀏覽器訪問:http://www.accp.com/100-(100|200)-100.html 跳轉(zhuǎn)到http://www.accp.com 頁面
1,修改nginx默認(rèn)配置文件
[root@localhost?~]#?cd?/etc/nginx/conf.d/ [root@localhost?conf.d]#?vim?default.conf? server?{ ????listen????80; ????server_name?www.accp.com; ????#charset?koi8-r; ????access_log?/var/log/nginx/www.accp.com-access.log?main; ????if?($request_uri?~?^/100-(100|200)-(d+).html$){???? ????##匹配正則開頭為100-(100|200)-一次多次的整數(shù)html為結(jié)尾的 ????????rewrite?(.*)?http://www.accp.com?permanent;????##永久重定向跳轉(zhuǎn)到主頁 ????}
2,修改dns區(qū)域數(shù)據(jù)配置文件
??[root@localhost?conf.d]#?vim?/var/named/accp.com.zone?##修改區(qū)域數(shù)據(jù)配置文件 ??www?in?a????192.168.142.130?? ??[root@localhost?conf.d]#?systemctl?restart?named?##重啟解析服務(wù)? ??[root@localhost?conf.d]#?systemctl?restart?nginx???##重啟nginx服務(wù)
3,測試網(wǎng)頁
應(yīng)用場景5——基于目錄下所有php文件跳轉(zhuǎn)
訪問http://www.accp.com/upload/1.php 跳轉(zhuǎn)到首頁
1,修改nginx默認(rèn)配置文件
[root@localhost?~]#?cd?/etc/nginx/conf.d/ ??[root@localhost?conf.d]#?vim?default.conf??##修改默認(rèn)配置文件 ??server?{ ??????listen????80; ??????server_name?www.accp.com; ??????#charset?koi8-r; ??????access_log?/var/log/nginx/www.accp.com-access.log?main; ??????location?~*?/upload/.*.php$?{?????##匹配不分大小寫,匹配upload后零次或多次以.php為結(jié)尾的 ??????????rewrite?(.+)?http://www.accp.com?permanent;??##跳轉(zhuǎn)到首頁 ??????} ??[root@localhost?conf.d]#?systemctl?restart?nginx??##重啟nginx服務(wù)
2,測試網(wǎng)頁
應(yīng)用場景6——基于最普通url請求的跳轉(zhuǎn),訪問一個具體的頁面跳轉(zhuǎn)到首頁
1,修改nginx默認(rèn)配置文件
[root@localhost?~]#?cd?/etc/nginx/conf.d/ ??[root@localhost?conf.d]#?vim?default.conf??##修改nginx默認(rèn)配置文件 ??server?{ ??????listen????80; ??????server_name?www.accp.com; ??????#charset?koi8-r; ??????access_log?/var/log/nginx/www.accp.com-access.log?main; ??????location?~*?^/abc/123.html?{????##匹配某一個特定的網(wǎng)頁 ??????????rewrite?(.+)?http://www.accp.com?permanent;?##跳轉(zhuǎn)到首頁 ??????} ??[root@localhost?conf.d]#?systemctl?restart?nginx??##重啟nginx服務(wù)
2,測試網(wǎng)頁