|NO.Z.00052|——————————|^^ 部署 ^^|——|Linux&Apache.V03|----------------------------------------------------|域名跳轉|
阿新 • • 發佈:2022-03-25
[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)