共计 3087 个字符,预计需要花费 8 分钟才能阅读完成。
本实验旨在 CentOS7 系统中,httpd-2.4 配置两台虚拟主机 ,主要有以下要求:
(1) 提供两个基于名称的虚拟主机:
www1.stuX.com,页面文件目录为 /web/vhosts/www1;错误日志为 /var/log/httpd/www1/error_log,访问日志为 /var/log/httpd/www1/access_log;
www2.stuX.com,页面文件目录为 /web/vhosts/www2;错误日志为 /var/log/httpd/www2/error_log,访问日志为 /var/log/httpd/www2/access_log;
(2) 通过 www1.stuX.com/server-status 输出其状态信息,且要求只允许提供账号的用户访问;
(3) www1 不允许 192.168.1.0/24 网络中的主机访问;
查看系统版本和 httpd 版本
[root@host ~]$httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Nov 14 2016 18:04:44
[root@host ~]$cat /etc/centos-release
CentOS Linux release 7.3.1611 (Core)
启动 httpd,测试能否正常运行
[root@host ~]$systemctl start httpd.service
[root@host ~]$systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2017-06-01 03:03:12 CST; 5s ago # active 表示正常运行
Docs: man:httpd(8)
man:apachectl(8)
Process: 6473 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Main PID: 6485 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
├─6485 /usr/sbin/httpd -DFOREGROUND
├─6486 /usr/sbin/httpd -DFOREGROUND
├─6487 /usr/sbin/httpd -DFOREGROUND
├─6489 /usr/sbin/httpd -DFOREGROUND
├─6490 /usr/sbin/httpd -DFOREGROUND
└─6572 /usr/sbin/httpd -DFOREGROUND
Jun 01 03:03:11 host systemd[1]: Starting The Apache HTTP Server...
Jun 01 03:03:12 host systemd[1]: Started The Apache HTTP Server.
使用 curl 命令访问
[root@host ~]$ip a show ens38 # 查看 ip
3: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:dc:18:5f brd ff:ff:ff:ff:ff:ff
inet 192.168.55.128/24 brd 192.168.55.255 scope global dynamic ens38
valid_lft 1752sec preferred_lft 1752sec
inet6 fe80::20c:29ff:fedc:185f/64 scope link
valid_lft forever preferred_lft forever
[root@host ~]$curl http://192.168.55.128 # 访问
<!DOCTYPE>
<h1>
CentOS 7.3
</h1>
创建指定文件目录
[root@host conf.d]$mkdir -pv /web/vhosts/www1
[root@host conf.d]$mkdir -pv /web/vhosts/www2
[root@host conf.d]$mkdir -pv /var/log/httpd/www2
[root@host conf.d]$mkdir -pv /var/log/httpd/www1
根据要求填写虚拟主机配置信息
# path /etc/httpd/conf.d/vir.conf # 配置文件全路径
#virtual host 1 # 虚拟主机 1 的配置
<VirtualHost 192.168.55.128:80>
ErrorLog "/var/log/httpd/www1/error_log"
CustomLog "/var/log/httpd/www1/access_log" combined
<Location /server-status>
SetHandler server-status
</Location>
<Directory /web/vhosts/www1>
<RequireAll>
Require all granted
Require not ip 192.168.1
</RequireAll>
</Directory>
</VirtualHost>
# virtual host 2 # 虚拟主机 2 的配置
<VirtualHost 192.168.55.128:80>
ServerName www2.stuX.com
DocumentRoot "/web/vhosts/www2"
ErrorLog "/var/log/httpd/www2/error_log"
CustomLog "/var/log/httpd/www2/access_log" combined
<Directory /web/vhosts/www2>
<RequireAll>
Require all granted
</RequireAll>
</Directory>
</VirtualHost>
创建 www1 和 www2 的 index 页面
[root@host conf.d]$cat /web/vhosts/www1/index.html
welcome to www1
thank you
[root@host conf.d]$cat /web/vhosts/www2/index.html
welcome to www2
thank you
重载 httpd 配置文件
[root@host conf.d]$httpd -t
Syntax OK
[root@host conf.d]$systemctl reload httpd.service
修改客户端主机的 hosts 文件,以便能解析域名
hosts 在 windows 环境下的路径为 C:\Windows\System32\drivers\etc。在该文件中添加两行
192.168.55.128 www1.stuX.com
192.168.55.128 www2.stuX.com
访问结果
图 1 访问 www1 站点
图 2 访问 www2 站点
图 3 查看 www1 站点的访问状态——正常
图 4 查看 www2 站点的访问状态错误
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-10/148077.htm
正文完
星哥玩云-微信公众号