1、建立httpd服务器(基于编译的方式进行),要求:
提供两个基于名称的虚拟主机:
(a)www1.itab.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access;
(b)www2.itab.com,页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access;
(c)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名;
(d)通过www1.itab.com/server-status输出httpd工作状态相关信息,且只允许提供帐号密码才能访问(status:status);
(e) www1不允许192.168.1.0/24网络中的主机访问;
2、为上面的的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;
(1)要求使用证书认证,证书中要求使用的国家(CN)、州(HA)、城市(ZZ)和组织(iTab);
(2)设置部门为Ops,主机名为www2.itab.com,邮件为admin@stuX.com;
现在分别使用httpd-2.2和httpd-2.4搭建符合以上要求的HTTP/HTTPS服务。
httpd-2.2
(1) 使用yum安装httpd服务程序。
[root@web ~]# yum -y install httpd
(2) 要想使用虚拟主机,必须先注释掉中心主机的文档根路径(DocRoot)。
[root@web ~]# vim /etc/httpd/conf/httpd.conf
#DocumentRoot "/var/www/html"
(3) 在/etc/httpd/conf.d目录下创建vhost.conf文件,专门用于配置虚拟主机。
NameVirtualHost 192.168.10.128:80
<VirtualHost 192.168.10.128:80> # 第一台虚拟主机配置
ServerName www1.itab.com # 第一台虚拟主机的主机名
DocumentRoot "/web/vhosts/www1" # 第一台虚拟主机的DocRoot
ErrorLog logs/www1.err # 错误日志路径
CustomLog logs/www1.access combined # 访问日志路径
<Directory "/web/vhosts/www1"> # 基于IP地址做访问控制
Order allow,deny
Deny from 192.168.1 # 不允许192.168.1.0/24网络中的主机访问
</Directory>
<Location /server-status> # 第一台虚拟主机开启server-status工作状态输出功能
SetHandler server-status
AuthType Basic # 基于账号密码做控制
AuthName "Enter your username and password." # 认证提示
AuthUserFile "/etc/httpd/.htpasswd" # 存放账号密码的文件路径
Require user status # 只允许status用户登录
</Location>
</VirtualHost>
<VirtualHost "192.168.10.128:80"> # 第二台虚拟主机配置
ServerName www2.itab.com # 第二台虚拟主机的主机名
DocumentRoot "/web/vhosts/www2" # 第二台虚拟主机的DocRoot
ErrorLog logs/www2.err # 错误日志路径
CustomLog logs/www2.access combined # 访问日志路径
</VirtualHost>
(4) 创建虚拟主机的文档根目录,并为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名。
[root@web ~]# mkdir -pv /web/vhosts/{www1,www2}
mkdir: created directory `/web'
mkdir: created directory `/web/vhosts'
mkdir: created directory `/web/vhosts/www1'
mkdir: created directory `/web/vhosts/www2'
[root@web ~]# cat /web/vhosts/www1/index.html
<h1> www1.itab.com </h1>
[root@web ~]# cat /web/vhosts/www2/index.html
<h1> www2.itab.com </h1>
(5) 设置站点主页面。
[root@web ~]# vim /etc/httpd/conf/httpd.conf
DirectoryIndex index.html
(6) 创建访问status页面的账号(status)和密码(status)。
[root@web ~]# htpasswd -cm /etc/httpd/.htpasswd status
New password:
Re-type new password:
Adding password for user status
(7) 检查语法错误,如果没有错误,则启动http服务。
[root@web ~]# httpd -t
Syntax OK
[root@web ~]# service httpd start
Starting httpd: [ OK ]