一、虚拟主机是在一台物理服务器上配置多个站点,有三种实现方法:基于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地址
地址之间用逗号隔开