Apache
是世界使用排名第一的Web服務器軟體,它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟體之一,它快速、可靠并且可通過簡單的API擴充,將Perl/Python等解釋器編譯到服務器中,
此篇講解將分為兩個配置實驗
- 構建虛擬web主機
- Apache網頁安全優化
一、構建虛擬web主機
虛擬web主機指的是在同一臺服務器中運行多個web站點,其中每一個站點實際上并不獨立占用整個服務器,因此被稱為"虛擬"Teb 主機,通過虛擬web主機服務可以充分利用服務器的硬體資源,從而大大降低網站構建及運行成本,
使用httpd服務可以非常方便地構建虛擬主機服務器,只需要運行一個httpd服務就能夠同時支撐大量的web站點,httpd股務支持的虛擬主機型別包搖以下三種:
- 基于域名:為每個虛擬主機使用不同的域名,但是其對應的IP地址是相同的,例如,w.benet .com和 ww.acct.com站點的IP地址都是192.168.90.10,這是使用最為普遍的虛擬 web主機型別,
- 基于IP地址:為每個虛擬主機使用不同的域名,且各自對應的re地址也不相同,這種方式需要為服務器配備多個網路按口,因此應用并不是非常)泛,
- 基于埠:這種方式并不使用域名、Ir地址來區分不同的站點內容,而是使用了不同的nrce埠號,因此用戶在瀏覽不同的虛擬站點時需要同老教定埠號才能訪問,
二、搭建實驗
(1)臨時配置域名與IP地址的映射關系
在/etc/hosts 檔案中
echo "IP 域名1" >>/etc/hosts
echo "IP 域名2" >>/etc/hosts
(2)為虛擬主機準備網頁檔案
mkdir -p /var/www/html/域名檔案1
mkdir -p /var/www/html/域名檔案2
echo "<h1>www.benet.com</h1>" >/var/www/htm1/域名檔案1/index.html
echo "<h1>www.accp.com</h1>" > /var/www/html/域名檔案2/index.html
(3)添加虛擬主機配置
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf #原始碼編譯安裝的虛擬主機組態檔路徑
vim /etc/httpd/conf.d/vhosts.conf #RPM或YUM安裝的虛擬主機組態檔路徑
<VirtualHost IP:80> #設定虛擬區域
serverAdmin webmaster@dummy-host.example.com #設定管理員箱,這行可忽略
DocumentRoot "/var/www/html/路徑" #設定網站根目錄
serverName 域名 #設定web站點的完整域名(主機名+域名)
#serverAlias www.durnny-host.example.com
ErrorLog "logs/域名-error_log" #設定錯誤日志檔案的路徑
CustomLog "logs/域名-access_log" common #設定訪問日志檔案的路徑
</VirtualHost>
#在下面繼續寫入訪問控制
<Directory "/var/www/html"> #設定目錄訪問權限
Options None #不啟用任何的服務器特性
Allowoverride None #不允許重寫Apache默認配置
Require all granted #允許所有主機訪問
</Directory>

(4)加載獨立的組態檔
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 #重啟httpd服務
接下來打開客戶機輸入www.accp.com驗證即可

基于埠
<VirtualHost 192.168.90.10: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.90.100: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
Listen 192.168.90.10:80
systemctl restart httpd

小知識
1、Apache連接保持
vim /usr/local/httpd/conf/extra/httpd-default.conf
KeepAlive on
設定是否打開連接保持功能,后面接0FF表示關閉,接ON表示打開,可以根據網站的并發請求量決定是否打開,即在高并發時打開連接保持功能,并發量不高時關閉此功能
MaxKeepAliveRequests 100
用于設定在一次長連接中可以傳輸的最大請求數量,超過此最大請求數量就會斷開連接,最大值的設定決定于網站中網頁的內容,一般設定數量會多于網站中所有的元素
KeepAliveTimeout 5
設定來自同一個客戶端一次連接多次請求之間的最大間隔時間,即兩次請求之間超過該時間連接就會自動斷開,從而避免客戶端占用連接資源,
2、創建用戶認證資料檔案
cd /usr/local/httpd/bin
./htpasswd -c /usr/local/httpd/user zhangsan
-c選項表示新建用戶資料檔案,預設時則表示指定的用戶資料檔案已經存在,用于添加新的用戶或修改現有用戶的密碼,
./htpasswd /usr/local/httpd/user lisi
cat /usr/local/httpd/user
確認用戶資料檔案
3、添加用戶授權配置
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/user 設定用于保存用戶賬號和密碼的認證檔案的路徑
Require valid-user 開啟用戶認證,只有認證檔案中的合法用戶才能訪問
#authgroupfile /usr/local/httpd/conf/group
設定用于保存組賬號和密碼的認證檔案的路徑
#Require user zhangsan
僅允許指定用戶訪問
#Require group zhangsan
僅允許指定組訪問
</Directory>
4、日志分割
使用Apache自帶rotatelogs分割工具,將Apache的日志進行按每天的日期自動分割
vim /usr/local/httpd/conf/httpd.conf
-----274行附近-----修改
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"
分割錯誤日志
-----304行附近-----修改
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/lic.com-error_%F.log 86400"
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/lic.com- access_%F.log 86400" combined
//開頭的|為管道符號,
//-l選項表示使用本地時間為時間基準,
//86400表示1天,即每天生成一個新的日志檔案,
mkdir /var/log/httpd
創建分割后的日志檔案保存目錄
systemctl restart httpd
ls /var/log/httpd
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/263376.html
標籤:其他
上一篇:Ubuntu18.04更換鏡像源
下一篇:系統,網路,硬體,安全
