Apache虚拟机的实现 俗称“一机多站“” 实例篇

一、虚拟主机的类型

基于域名的虚拟主机

基于IP的虚拟主机

基于端口的虚拟主机

二、本实例是基于域名的虚拟主机的实现

练习:(1)在/website目录下创建g、z、c三个目录,分别作为

www.ggg.com,www.zzz.com,www.ccc.com三个站点的web根目录

(2)设置域名服务器解析www.ggg.com,www.zzz.com,www.ccc.com解析同一个ip地址

(3)要求三个站点的日志都存放到/var/log/httpd目录下,并使用同一个文件,即访问日志都放

到access.log,错误日志都放到error.log下,错误日志的

级别设置为notice,访问日志记录时间,客户端地址,请求的URL路径,请求方法,响应请求的子

进程ID,请求的文件,浏览器类型等信息

(4)配置这两个日志至少要达到10M以后才进行轮转,且最多保存5个轮转文件

(5)设置/website/sxjy/private目录只允许172.16.0.0/16网段的地址访问

(6)设置/website/sxkj/finance只允许经过认证和授权的用户访问,具体用户名自己设置

(1)mkdir -p /website/{g,z,c}

cd /website/a

vim index.html

wilcome to ggg page

其他文件做相同处理

mkdir -p /website/a/{prvite,finance}

cp /website/a/index.html /website/a/private

cp /website/a/index.html /website/a/finance

(2)注意:在客户端设置 vim /etc/hosts

10.0.10.103 www.ggg.com

 10.0.10.103 www.zzz.com

  10.0.10.103 www.ccc.com

亦可采用dns服务器 加A 选项即可

(3)配置文件的书写

<VirtualHost *:80>

ServerAdmin admin@ggg.com

DocumentRoot "/website/aaa"

ServerName www.aaa.com

ErrorLog "/var/log/httpd/error.log"

CustomLog "/var/log/httpd/access.log" common

</VirtualHost>

其它两个同上

(4)日志文件的书写

在 /etc/logrotate.d 下

vim website

/var/log/httpd/*log

{

size=10M

rotate 5

}

大致如此

(5)

<VirtualHost *:80>

ServerAdmin admin@ggg.com

DocumentRoot "/website/aaa"

ServerName www.aaa.com

ErrorLog "/var/log/httpd/error.log"

CustomLog "/var/log/httpd/access.log" common

<Directory /website/a/private>

  

    Require all denied

Require ip 172.16.0.0/16

</Directory>

<Directory /sxjy>

AuthType Basic

AuthName "Restricted Files"

AuthBasicProvider file

AuthUserFile "/usr/local/httpd/passwd/password"

Require user user03

</Directory>

</VirtualHost>

cd /usr/local/

# htpasswd -c /usr/local/httpd/passwd/password user03

哦了 !!