CentOS7配置httpd虚拟主机教程

本实验旨在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:WindowsSystem32driversetc。在该文件中添加两行

192.168.55.128 www1.stuX.com
192.168.55.128 www2.stuX.com

访问结果

CentOS7配置httpd虚拟主机教程 Linux 第1张

图1、访问www1站点

CentOS7配置httpd虚拟主机教程 Linux 第2张

图2、访问www2站点

CentOS7配置httpd虚拟主机教程 Linux 第3张

图3、查看www1站点的访问状态――正常

CentOS7配置httpd虚拟主机教程 Linux 第4张

图4、查看www2站点的访问状态错误

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

参与评论