1. 程式人生 > 其它 >Apache 配置與應用(內附DNS指令碼)

Apache 配置與應用(內附DNS指令碼)

虛擬Web主機指的是同一臺伺服器中執行多個Web站點,其中每一個站點實際上並不獨立佔用整個伺服器,因此被稱為“虛擬”Web主機。通過虛擬Web 主機服務可以充分利用伺服器的硬體資源,從而大大降低網站構建及執行成本

使用http服務可以非常方便的構建虛擬主機伺服器,只需要執行一個httpd服務就能夠同時支撐大量的Web站點。http服務支援的虛擬主機型別包括以下三種:

  1. 基於域名:為每個虛擬主機使用不同的域名,但是其對應的IP地址是相同的。例如:www.benet.com 和www.zyp.com 站點的Ip地址都是192.168.48.10 。這是使用最為普通的虛擬Web主機型別
  2. 基於IP地址:為每個虛擬主機使用不同的域名,且各自對應的IP地址也不同。這種方式需要伺服器配備對個網路介面,因此應用並不是非常廣泛
  3. 基於埠:這種方式並不適用域名、IP地址來區分不同的站點內容,而是使用了不同的TCP埠號,因此使用者在瀏覽不同的虛擬站點時需要同時指定埠號才能訪問

基於域名的虛擬主機:

1、為虛擬主機提供域名解析

方法一:部署DNS域名解析伺服器來提供域名解析

#!/bin/bash
read -p "請輸入你要解析的IP地址:" LAN_IP
read -p "請輸入你要解析的域名:" FQDN
DOMAIN=${FQDN#*.}
HOSTNAME=${FQDN%%.*}

mount /dev/sr0 /mnt &> /dev/null
rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm &> /dev/null
cp /etc/named.conf{,.bak}
sed -i -e '13 s/127.0.0.1/any/' -e '19 s/localhost/any/' /etc/named.conf
cp /etc/named.rfc1912.zones{,.bak}
sed -i '24 a zone "'$DOMAIN'" IN {\n\ttype master;\n\tfile "'${DOMAIN}'}.zone";\n\tallow-update { none ; };\n};\n' /etc/named.rfc1912.zones

cp -p /var/named/named.localhost /var/named/${DOMAIN}.zone

sed -i -e '2 s/rname.invalid./admin/' -e '9 s/127.0.0.1/'$LAN_IP'/' -e '$a '$HOSTNAME' IN A '$LAN_IP' ' -e '10d' /var/named/${DOMAIN}.zone

systemctl restart named
echo "nameserver $LAN_IP" > /etc/resolv.conf

方法二:在/etc/hosts檔案中臨時配置域名與IP地址的對映關係

2、為虛擬機器準備網頁文件

3、新增虛擬主機配置

4、訪問

Options指令解釋:

Options指令的主要作用是控制特定目錄將啟用那些伺服器特性。可以在Apache服務配置檔案的虛擬主機配置、特定目錄配置(Directory)以及.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:表示除MutiViews之外的所有特性。這也是Options指令的預設設定。

Allowoverride指令解釋:

.htaccess(分散式隱含配置檔案):提供了針對每個目錄改變配置的方法,即在一個特定的目錄中防止一個包含特定指令的檔案,其中的指令作用於此目錄及其所有的子目錄。

當AllowOverride 設定成None 時,相應的配置目錄下的.htaccess檔案是不會被讀取的,即無法生效。

當AllowOverride 設定成ALL時,每一次請求訪問相應目錄下的檔案時,都會讀取.htaccess 檔案的配置,意味著原Apache指令被.htaccess檔案中的指令重寫。

從效能和安全性考慮,一般都儘可能避免使用.htaccess檔案,任何希望放在.htaccess檔案中的配置,都可以放在主配置檔案(httpd.conf)的<:Directory> 段中,而且高效。因此AllowOverrides屬性一般都配置成None。

地址限制策略:

Require all granted:允許所有主機訪問

Require all deied:拒絕所有主機訪問

Require all local:僅允許本地主機訪問

Require [ not ] host<主機名或域名列表>:允許或拒絕指定主機或域名訪問

Require [ not ] ip <IP 地址或網段列表:>允許或拒絕指定IP地址網路訪問

基於IP地址的虛擬主機:

基於埠:

Apache連線保持:

構建Web虛擬目錄與使用者授權限制:

1、建立使用者認證資料檔案

2、新增使用者授權配置

3、驗證使用者訪問授權

4、訪問

Apache日誌分割

使用Apache自帶 rotatelogs分割工具,將Apache的日誌進行每天的自動分割

AWAtats分析系統

AWStats 是使用Perl 語言開發的一款開源日誌分析系統,它用來完成自動化的日誌統計與分析工作

1、安裝軟體包

2、為要統計的站點建立配置檔案

3、修改自動生成的awstats訪問許可權,載入CGI模組

4、修改站點統計配置檔案

5、執行日誌分析,並設定cron計劃任務

6、訪問 AWStats 分析系統站點

7、優化網頁