本实验旨在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版本
1
2
3
4
5
|
[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,测试能否正常运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
[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命令访问
1
2
3
4
5
6
7
8
9
10
11
12
|
[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 >
|
创建指定文件目录
1
2
3
4
|
[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
|
根据要求填写虚拟主机配置信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# 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页面
1
2
3
4
5
6
|
[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配置文件
1
2
3
|
[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站点的访问状态错误
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。