CentOS7配置httpd虛擬主機

本實驗旨在CentOS7系統中,httpd-2.4配置兩臺虛擬主機,主要有如下要求:html

(1) 提供兩個基於名稱的虛擬主機:web

  www1.stuX.com,頁面文件目錄爲/web/vhosts/www1;錯誤日誌爲/var/log/httpd/www1/error_log,訪問日誌爲/var/log/httpd/www1/access_log;
apache

  www2.stuX.com,頁面文件目錄爲/web/vhosts/www2;錯誤日誌爲/var/log/httpd/www2/error_log,訪問日誌爲/var/log/httpd/www2/access_log;
windows

(2) 經過www1.stuX.com/server-status輸出其狀態信息,且要求只容許提供帳號的用戶訪問;
centos

(3) www1不容許192.168.1.0/24網絡中的主機訪問;網絡

 

查看系統版本和httpd版本curl

[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。在該文件中添加兩行ui

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

訪問結果url

圖1  訪問www1站點

 

圖2  訪問www2站點

 

 

圖3  查看www1站點的訪問狀態——正常

 

圖4  查看www2站點的訪問狀態錯誤

相關文章
相關標籤/搜索