1. 程式人生 > 其它 >|NO.Z.00052|——————————|^^ 部署 ^^|——|Linux&Apache.V03|----------------------------------------------------|域名跳轉|

|NO.Z.00052|——————————|^^ 部署 ^^|——|Linux&Apache.V03|----------------------------------------------------|域名跳轉|



[LinuxNetworkEnd:Linux&Apache.V03]                                                          [Applications.LinuxNetworkEnd] [|web伺服器Apache|Apache別名|Apache使用者認證|Apache虛擬主機|Apache域名跳轉|apache+openssl] [實現https(重點)|Apache日誌切割|Apache不記錄指定檔案型別的日誌|Apache配置靜態快取|]








一、虛擬主機(重點)
### --- 虛擬機器:
~~~     虛擬硬體,真正的作業系統;
~~~     在一臺物理機上來進行多個虛擬主機的部署,達到資源的最大利用率。

### --- 虛擬主機:
~~~     虛擬空間;
~~~     虛擬主機,也叫“虛擬空間“,
~~~     就是把一臺執行在網際網路上的物理伺服器劃分成多個”虛擬“伺服器,
~~~     虛擬機器主機技術極大的促進了網站技術的應用和普及,
~~~     同時虛擬主機的租用服務也成了網路時代的一種新型經濟技術。
### --- 虛擬主機的分類

~~~     #基於IP的虛擬主機:
~~~     一臺伺服器,多個IP,搭建多個網站
~~~     #基於埠的虛擬主機:
~~~     一臺伺服器,一個IP,搭建多個網站,每個網站使用不同的埠訪問
~~~     #基於域名的虛擬主機:
~~~     一臺伺服器,一個IP,搭建多個網站,每個網站使用不同的域名訪問
二、Apache實驗
### --- 域名解析:準備兩個域名
www.yanqiv1.com
www.yanqiv2.com

~~~		使用本地hosts檔案進行解析
[root@server11 ~]# vim /etc/hosts
10.10.10.11 www.yanqiv1.com
10.10.10.11 www.yanqiv2.com
### --- 網站主頁目錄規劃
~~~		在/htdocs/目錄下分別建立yanqivp1和yanqiv2兩個目錄,
~~~		並且新建目錄內建立index.html檔案(分別寫不一樣的內容)

[root@server11 ~]# mkdir  /usr/local/apache2/htdocs/yanqiv1
[root@server11 ~]# mkdir  /usr/local/apache2/htdocs/yanqiv2
[root@server11 ~]# vim  /usr/local/apache2/htdocs/yanqiv1/index.html
www.yanqiv1.com
[root@server11 ~]# vim  /usr/local/apache2/htdocs/yanqiv1/index.htm2 
www.yanqiv2.com
### --- 修改主配置檔案開啟檔案關聯

[root@server11 ~]# vim /usr/local/apache2/etc/httpd.conf
Include etc//extra/httpd-vhosts.conf                        // 此行取消註釋
### --- 編輯子配置檔案,編寫虛擬主機標籤

[root@server11 ~]# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf // 新增以下內容,有幾個虛擬主機就寫機組(新增之前先把原先存在的示例刪除掉)
:23,38s /^/#/                                               // 23到38行加上註釋
#<Directory "/usr/local/apache2/htdocs/yanqiv1">            // 目錄許可權標籤根據需要自行新增,新增使用者認證許可權
#    Options Indexes FollowSymLinks
#    AllowOverride None                                     // none是關閉狀態,可以設定使用者認證及域名跳轉
#    Require all granted
#</Directory>
<VirtualHost 10.10.10.11:80>                                // 要監聽的網絡卡地址和埠,若是有很多塊網絡卡的話可以寫*
    ServerAdmin [email protected]                       // 管理員郵箱
    DocumentRoot "/usr/local/apache2/htdocs/yanqiv1"        // 這個網站所繫結的網頁檔案地址
    ServerName www.yanqiv1.com                              // 完整域名
    ErrorLog "logs/yanqiv1-error_log"                       // 錯誤日誌
    CustomLog "logs/yanqiv1-access_log" common              // 訪問日誌
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/apache2/htdocs/yanqiv2"
    ServerName www.yanqiv2.com
    ErrorLog "logs/yanqiv2-error_log"
    CustomLog "logs/yanqiv2-access_log" common
</VirtualHost>
### --- 重啟服務,驗證結果

[root@server11 ~]# apachectl -t
Syntax OK
[root@server11 ~]# apachectl restart
~~~		Windows下:瀏覽器輸入兩個不同的域名驗證網頁內容(提前修改windows的hosts檔案)
C:\Windows\System32\drivers\etc
10.10.10.11 www.yanqiv1.com
10.10.10.11 www.yanqiv2.com

~~~		通過Chrome訪問www.yanqiv1.com和www.yanqiv2.com
http://www.yanqiv1.com/
www.yanqiv1.com 
http://www.yanqiv2.com/
www.yanqiv2.com 
~~~		Linux下:通過elinks/curl命令驗證:
~~~		elinks/curl URL地址(提前修該linux的hosts檔案)

[root@localhost ~]# elinks www.yanqiv1.com
www.yanqiv1.com 
[root@localhost ~]# elinks www.yanqiv2.com
www.yanqiv2.com 
[root@localhost ~]# curl www.yanqiv1.com
www.yanqiv1.com
[root@localhost ~]# curl www.yanqiv2.com
www.yanqiv2.com

三、域名跳轉
### --- 域名跳轉

~~~		一個網站難免會有多個域名,而多個域名總得有一個主次,
~~~		比如我的網站可以用兩個域名訪問:www.yanqiv1.com和www.yanqiv2.com
~~~		但大家發現不管我用那個域名訪問,最終都會跳轉到www.yanqi.com上來,
~~~		這個行為就叫做域名的跳轉,狀態碼:301是永久跳轉,
~~~		302是臨時跳轉(之前的域名出現問題,可以使用該方案)網站上一定要是和值為301,
~~~		這樣對搜尋引擎是比較友好的。
~~~		實驗條件
### --- 虛擬主機能正常訪問
~~~		開啟主配置檔案開啟重寫模組

[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so            // 取消註釋
### --- 實驗步驟:
~~~		修改虛擬主機配置檔案

[root@localhost ~]# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
<Directory "/usr/local/apache2/htdocs/yanqiv2">             // 把目錄改為yanqiv2,對yanqiv2做一個域名跳轉
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
### --- 建立匹配檔案

[root@localhost yanqiv2]# vim /usr/local/apache2/htdocs/yanqiv2/.htaccess                   #在指定的網站目錄下建立檔案,並新增如下內容
:1,9s /  //                                                 // 取消1到9前面的兩個空格
RewriteEngine on                                
#開啟rewrite功能
RewriteCond %{HTTP_HOST} ^www.yanqiv2.com                   // 若開頭訪問到是www.yanqiv2.com的地址,     
#把以www.yanqi.com      開頭的內容賦值給HTTP_HOST變數
RewriteRule ^(.*)$ http://www.yanqiv1.com/$1 [R=permanent,L] // 都匹配到www.yaqniv1.com R=permanent:指的是把跳轉規則變為301永久規則,L:表示最後一條規則,最後一條規則生效,再寫也會執行。
# ^(.*)$指帶客戶端要訪問的資源
# $1 把 .* 所指代的內容賦值到$1變數中
# R=permanent 永久重定向 = 301
# L 指定該規則為最後一條生效的規則,以後的不在生效
### --- 重啟伺服器並測試

[root@localhost ~]# apachectl -t
Syntax OK
[root@localhost ~]# apachectl restart
~~~		通過上述測試,
~~~		發現無論是yanqiv1或yanqiv2最終都是訪問到www.yanqi.com域名上來則試驗成功

[root@localhost ~]# curl www.yanqiv1.com                    // yanqiv1:正常訪問到頁面
www.yanqiv1.com
[root@localhost ~]# curl www.yanqiv2.com                    // yanqiv2:會直接跳轉到yanqiv1域名;會直接訪問到配置資訊,curl會載入網頁內容
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.yanqiv1.com/">here</a>.</p> // 跳轉成了www.yanqiv1.com地址
</body></html>
[root@localhost ~]# elinks www.yanqiv1.com  
www.yanqiv1.com                                             // 訪問到yanqiv1的頁面
[root@localhost ~]# elinks www.yanqiv1.com    
www.yanqiv1.com                                             // 跳轉到yanqiv1的頁面
### --- curl是把頁面打印出來了
### --- elinks是解析了跳轉頁面








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)