目錄
- 一、構建虛擬web主機
- 二、虛擬主機型別
- 三、配置基于域名的虛擬主機
- 四、基于IP地址的虛擬主機
- 五、基于埠的虛擬主機
- 六、Apache連接保持
- 七、構建Web虛擬目錄與用戶授權限制
- 八、Apache日志分割
- 九、AWStats分析系統
一、構建虛擬web主機
虛擬Web主機指的是在同一臺服務器中運行多個Web站點,其中每一個站點實際上并不獨立占用整個服務器,因此被稱為“虛擬“Web主機,通過虛擬Web主機服務可以充分利用服務器的硬體資源,從而大大降低網站構建及運行成本
二、虛擬主機型別
使用httpd服務可以非常方便地構建虛擬主機服務器,只需要運行一個httpd服務就能夠同時支撐大量的Web站點,httpd服務支持的虛擬主機型別包括以下三種:
1、基于域名:為每個虛擬主機使用不同的域名,但是其對應的IP地址是相同的,例如,www.benet.com和www.accp.com站點的IP地址都是192.168.241.3,這是使用最為普遍的虛擬Web主機型別
2、基于IP地址:為每個虛擬主機使用不同的域名,且各自對應的IP地址也不相同,這種方式需要為服務器配備多個網路介面,因此應用并不是非常廣泛
3、基于埠:這種方式并不使用域名、IP地址來區分不同的站點內容,而是使用了不同的TCP埠號,因此用戶在瀏覽不同的虛擬站點時需要同時指定埠號才能訪問
三、配置基于域名的虛擬主機
1、為虛擬主機提供域名決議
方法一:部署DNS域名決議服務器,來提供域名決議
方法二:在/etc/hosts 檔案中臨時配置域名與IP地址的映射關系
echo "192.168.241.3 www.benet.com" >> /etc/hosts
echo "192.168.241.3 www.accp.com" >> /etc/hosts

2、為虛擬主機準備網頁檔案
mkdir -p /var/www/html/benet
mkdir -p /var/www/html/accp
echo "<h1> www.benet.com</h1>" >/var/www/html/benet/index.html
echo "<h1> www.accp.com</h1>" >/var/www/html/accp/index.html



3、添加虛擬主機配置
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
原始碼編譯安裝的虛擬主機組態檔路徑
#vim /etc/httpd/conf.d/vhosts.conf
RPM或者YUM安裝的虛擬主機組態檔路徑
<VirtualHost 192.168.241.3:80>——————————設定虛擬主機區域
#ServerAdmin webmaster@dummy-host.example.com———————設定管理員郵箱,這個可以忽略
DocumentRoot ”/var/www/html/benet“————設定網站根目錄
ServerName www.benet.com
#ServerAlinas www.dummy-host.example.com
ErrorLog "logs/benet.com-error_log"————————設定錯誤日志檔案的路徑
CustomLog "logs/benet.com-access_log" common————設定訪問日志檔案的路徑
</VirtualHost>
<VirtualHost 192.168.241.3:80>
DocumentRoot ”/var/www/html/accp“
ServerName www.accp.com
#ServerAlinas www.dummy-host.example.com
ErrorLog "logs/accp.com-error_log"
CustomLog "logs/accp.com-access_log" common
</VirtualHost>

4、設定訪問控制
<Directory "/var/www/html">————————設定目錄訪問權限
Options None————————————不啟用任何的服務器特性
AllowOverride None————————不允許重寫Apache默認配置
Require all granted——————允許所有主機訪問
</Directory>

Options指令解釋:
Options指令的主要作用是控制特定目錄將啟用哪些服務器特性,可以在Apache服務組態檔的虛擬主機配置(VirtualHost)、特定目錄配置(Directoty)以及.htaccess檔案中使用
Options指令常用選項:
None:表示不啟動任何的服務器特性
FollowSymLinks:服務器允許在此目錄中使用符號連接(軟鏈接)
Indexes:如果輸入的網址對應服務器上的一個檔案目錄,而此目錄中又沒有Apache組態檔中的DirectoryIndex指令指定的檔案(例如:DirectoryIndex index.html index.php),則列出該目錄下的所有檔案
MultiViews:如果客戶端請求的路徑可能對應多種型別的檔案,那么服務器將根據客戶端請求的具體情況自動選擇一個最匹配客戶端要求的檔案,例如,在服務器站點的file檔案夾下中存在名為hello.jpg和hello.html的兩個檔案,此時用戶輸入http://localhost/file/hello,如果在file檔案夾下并沒有hello子目錄,那么服務器將會嘗試在file目錄夾下查找形如hello.*的檔案,然后根據用戶請求的具體情況回傳最匹配要求的hello.jpg或者hello.html
All:表示除MultiViews之外的所有特性,這也是Options指令的默認設定
AllowOverride指令決議:
.htaccess(分布式隱含組態檔):提供了針對每個目錄改變配置的方法,即在一個特定的目錄中放置一個包含特定指令的檔案,其中的指令作用于此目錄及其所有子目錄
當AllowOverride設定成None時,相應的配置目錄下的.htaccess檔案是不被讀取的,即無法生效
當AllowOverride設定成All,每一次請求訪問相應目錄下的檔案時,都會讀取.htaccess檔案的配置,意味著原Apache指令會被.htaccess檔案中的指令重寫
從性能和安全性考慮,一般都盡可能避免使用.htaccess檔案, 任何希望放在. htaccess檔案中的配置,都可放在主組態檔(httpd. conf) 的段中, 而且高效,因此AllowOverride屬性一般都配置成None
地址限制策略:
Require all granted:允許所有主機訪問,
Require all denied: 拒絕所有主機訪問,
Require local: 僅允許本地主機訪問,
Require [not] host < 主機名或域名串列>:允許或拒絕指定主機或域名訪問,
Require [not] ip <IP地址或網段串列>:允許或拒絕指定IP地址網路訪問,
5、加載獨立的組態檔
vim /usr/local/httpd/conf/httpd.conf
#原始碼編譯安裝的httpd服務主組態檔路徑
--483行--取消注釋
Include conf/extra/httpd-vhosts.conf————————————加載獨立的組態檔
#vim /etc/httpd/ conf /httpd. conf————————————RPM或YUM安裝的httpd服務主組態檔路徑
IncludeOptional conf.d/* .conf——————————最后一行已默認開啟此項
systemctl restart httpd

6.在客戶機中訪問虛擬web 主機
http://www.benet.com
http://www. accp. com


四、基于IP地址的虛擬主機
ifconfig ens33:0 192.168.241.30 netmask 255.255.255.0
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.241.3:80>
DocumentRoot "/var/www/html/benet"
ServerName www.benet.com
ErrorLog "logs/benet.com-error_log"
CustomLog "logs/benet.com-access_1og" common
</VirtualHost>
<VirtualHost 192.168.241.30:80>
DocumentRoot "/var/www/html/accp"
ServerName www.accp.com
ErrorLog "logs/accp.com-error_log"
CustomLog "logs/accp.com-access_1og" common
</VirtualHost>
<Directory "/var/www/html">
Options None
AllowOverride None
Require all granted
</Directory>
vim /usr/local/httpd/conf/httpd.conf
--53行--插入
Listen 192.198.241.30:80
systemctl restart httpd
在客戶機中瀏覽器訪問虛擬機Web主機
http://192.168.241.3
http://192.168.241.30



客戶機輸入IP地址:
http://192.168.241.3

http://192.168.241.30

五、基于埠的虛擬主機
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.241.3:80>
DocumentRoot "/var/www/html/benet"
ServerName www.benet.com
ErrorLog "logs/benet.com-error_log"
CustomLog "logs/benet.com-access_1og" common
</VirtualHost>
<VirtualHost 192.168.241.3:8080>
DocumentRoot "/var/www/html/accp"
ServerName www.accp.com
ErrorLog "logs/accp.com-error_log"
CustomLog "logs/accp.com-access_1og" common
</VirtualHost>
<Directory "/var/www/html">
Options None
AllowOverride None
Require all granted
</Directory>
vim /usr/local/httpd/conf/httpd.conf
--53行--插入
Listen 192.198.241.3:8080
systemctl restart httpd
在客戶機中瀏覽器訪問虛擬機Web主機
http://192.168.241.3:80
http://192.168.241.3:8080


在客戶機中瀏覽器訪問虛擬機Web主機
http://192.168.241.3:80

http://192.168.241.3:8080

六、Apache連接保持
vim /usr/local/httpd/conf/extra/httpd-default.conf
KeepAlive on
#設定是否打開連接保持功能,后面接0FF表示關閉,接ON表示打開,可以根據網站的并發請求量決定是否打開,即在高并發時打開連接保持功能,并發量不高時關閉此功能
MaxKeepAliveRequests 100
#用于設定在一次長連接中可以傳輸的最大請求數量,超過此最大請求數量就會斷開連接,最大值的設定決定于網站中網頁的內容,一般設定數量會多于網站中所有的元素
KeepAliveTimeout 5
#設定來自同一個客戶端一次連接多次請求之間的最大間隔時間,即兩次請求之間超過該時間連接就會自動斷開,從而避免客戶端占用連接資源,

七、構建Web虛擬目錄與用戶授權限制
1.創建用戶認證資料檔案
cd /usr/local/httpd/bin
./htpasswd -c /usr/local/httpd/conf/user zhangsan
./htpasswd /usr/local/httpd/conf/user lisi
#-c選項表示新建用戶資料檔案,預設時則表示指定的用戶資料檔案已經存在,用于添加新的用戶或修改現有用戶的密碼,
cat /usr/local/httpd/conf/user————————#確認用戶資料檔案

2.添加用戶授權配置
vim /usr/local/httpd/conf/httpd.conf
#####末行添加#####
Alias /test/var/www/html/test————————設定虛擬目錄的根目錄,/test為虛擬目錄名稱
<Directory "/var/www/html/test">——————設定虛擬目錄配置區域
AuthName "Hello!"————————————定義受保護的領域名稱,會在認證對話框中顯示
AuthType Basic——————————設定認證的型別,Basic表示基本認證
AuthUserFile /usr/local/httpd/conf/user——————————設定用于保存用戶賬號和密碼的認證檔案的路徑
Require valid-user————————————開啟用戶認證,只有認證檔案中的合法用戶才能訪問
#authgroupfile /usr/local/httpd/conf/group——————設定用于保存組賬號和密碼的認證檔案的路徑
#Require user zhangsan————————————#僅允許指定用戶訪問
#Require group zhangsan——————————#僅允許指定組訪問
</Directory>

3.驗證用戶訪問授權
mkdir -p /var/www/html/test
echo "<h1>this is vdir test</h1>" > /var/www/html/test/index.html
systemctl restart httpd
在客戶機中瀏覽器訪問
http://192.168.241.3:80/test



八、Apache日志分割
使用Apache自帶rotatelogs分割工具,將Apache的日志進行按每天的日期自動分割,
vim /usr/local/httpd/conf/httpd.conf
####275行####修改
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"————————————————————分割錯誤日志
####305行####修改
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" combined————————————分割訪問日志
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/benet.com-error_%F.log 86400"
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/benet.com- access_%F.log 86400" combined
#開頭的|為管道符號,
#-l選項表示使用本地時間為時間基準,
#86400表示1天,即每天生成一個新的日志檔案,
mkdir /var/log/httpd————————創建分割后的日志檔案保存目錄
systemctl restart httpd
ls /var/log/httpd




九、AWStats分析系統
AWStats是使用Perl語言開發的一款開源日志分析系統,它用來完成自動化的日志統計與分析作業,
1.將安裝Awstats所需軟體包傳到/opt目錄下
awstats-7.6.tar.gz

2.安裝AWStats 軟體包
cd /opt
tar zxvf awstats-7.6.tar.gz
mv /opt/awstats-7.6 /usr/local/awstats


3.為要統計的站點建立組態檔
cd /usr/local/awstats/tools
./awstats_configure.pl
......
Config file path ('none' to skip web server setup):
> /usr/local/httpd/conf/httpd.conf————————輸入httpa服務主組態檔的路徑
Your web site,virtual server or profile name:
> www.kgc.com————————————輸入要統計的站點域名
其它全部是y或者回車



之后全是按回車
3.修改自動生成的awstats訪問權限,加載CGI模塊(Apache2.4以上版本需要加載CGI模塊)
vim /usr/local/httpd/conf/httpd.conf
ErrorLog "logs/error_log"
CustomLog "logs/access_log" combined
#####143行
<IfModule !mpm_prefork_module>
LoadModule cgid_ module modules/mod_cgid.so——————取消注釋
</IfModule>
<IfModule mpm_prefork_module>
LoadModule cgi_module modules/mod_cgi.so——————取消注釋
</IfModule>
##跳至末行修改##
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
#Order allow,deny——————注釋掉
#Allow from all—————注釋掉
Require all granted————————添加
</Directory>



4.修改站點統計組態檔
vim /etc/awstats/awstats.www.kgc.com.conf
LogFile="/usr/local/httpd/logs/access_log"——————————修改訪問日志檔案位置
DirData="/var/lib/awstats"————————awstats目錄默認不存在,需要手動創建


5.執行日志分析,并設定cron計劃任務
systemctl restart httpd
cd /usr/local/awstats/tools/
./awstats_updateall.pl now————————更新資料(根據站點組態檔指定的日志檔案路徑)
crontab -e
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
systemctl start crond



6.訪問AwStats分析系統站點
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
echo "192.168.241.3 www.kgc.com" >> /etc/hosts
瀏覽器訪問
http://www.kgc.com/awstats/awstats.pl?config=www.kgc.com

設定完這里后記得重啟下服務,才能獲取到訪問量

7.優化網頁地址
vim /var/www/html/aws.html
<html>
<head>
<meta http-equiv-refresh content="O;url=http://www.kgc.com/awstats/awstats.pl?config=www.kgc.com">
</head>
<body></body>
</html>
HTML檔案結構解釋:
<html> </html>:用于HTML檔案結構最外層表示的標簽
<head></head>:用于HTML網頁內容描述資訊的頭標簽
<body></body>:用于顯示網頁內容的內容標簽
<meta>:定義了HTML檔案中的元資料,比如針對搜索引擎和更新頻度的描述和關鍵詞,這里的http-equiv=refresh用于實作網頁自動跳轉
瀏覽器訪問
http://www.kgc.com

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/245637.html
標籤:其他
