1、虛擬主機是在一臺物理服務器上配置多個站點,有三種實現方法:基於ip,基於端口,基於域名web
配置虛擬主機建議在單獨一個文件,並在主配置文件使用 include "xxx" 包含進來,這樣使配置件更清晰服務器
基於端口:應先在主配置文件中增長一個監聽的端口listen 8080
ide
<virtualhost 172.16.168.140:80>網站
options noneui
documentroot "/var/www/80"server
</virtualhost>blog
<virtualhost 172.16.168.140:8080>ip
options noneci
documentroot "/var/www/8080"資源
</virtualhost>
2.基於IP:
<virtualhost 172.16.168.150:80>
options none
documentroot "/var/www/ip150"
</virtualhost>
3.基於域名:apatche2.2版本應先在虛擬主機配置文件增長 namevirtualhost 172.16.168.140:80
若是想經過多個域名訪問到同一個網站,能夠定義多個servername
<virtualhost 172.16.168.140:80>
servername www.a.com
servername www.an.com
options none
documentroot "/var/www/a.com"
</virtualhost>
<virtualhost 172.16.168.140:80>
servername www.b.com
options noe
documentroot "/var/www/b.com"
</virtualhost>
2、配置用戶對web資源的訪問控制:若是某些資源不想被用戶訪問,能夠經過創建受權讓用戶訪問或根據ip地址進行限制
經過創建受權:
1.使用htpasswd 命令建立用戶名和密碼文件: htpasswd -c /etc/httpd/conf/htpasswd zzc (注意:當須要建立第二個用戶時,去掉-c選項,不然會把第一次建立的用戶給清除掉)
<directory "/var/www/secret">
authtype basic
authname "is a sceret..."
authuserfile "/etc/httpd/conf/htpasswd"
require (user abc | valid-user) valid-user指所有用戶 user能夠指定具體某個用戶
</directory>
若是想經過組來管理,需先創建一個組文件:
而後在文件中寫上組名和已經(使用htpasswd)建立好的用戶:
最後在<directory>中增長下面兩條命令:
authgroupfile "/etc/httpd/conf/htgroup"
require group myuser
經過限定ip地址:
<directory "/var/www/secret「>
order deny,allow
deny from 192.168.100.1
</directory>
order指定 先拒絕後容許 或 先容許後拒絕
先拒絕後容許:默認容許,若是不指定拒絕的地址將容許全部地址
先容許後拒絕:默認拒絕,若是不指定容許的地址將拒絕全部地址
地址能夠是 主機名、網段(172.16.0.0 能夠簡寫爲172.16)、具體某個ip地址
地址之間用逗號隔開