一、虛擬主機是在一臺物理服務器上配置多個站點,有三種實現方法:基於ip,基於端口,基於域名
配置虛擬主機建議在單獨一個文件,並在主配置文件使用 include "xxx" 包含進來,這樣使配置件更清晰
基於端口:應先在主配置文件中增加一個監聽的端口listen 8080
<virtualhost 172.16.168.140:80>
options none
documentroot "/var/www/80"
</virtualhost>
<virtualhost 172.16.168.140:8080>
options none
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>
二、配置用戶對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地址
地址之間用逗號隔開