next up previous contents
Next: 架設動態網頁 Up: Apache 2.4 HTTP Server Previous: HTTPS 安全網站架設   Contents

Virtual Host 虛擬主機

  1. virtual host:一台 Apache Server 可提供多個網址,但必須配合 DNS ,提供這台伺服器的 ip 對應多個 domain name。本系統每一虛擬機都至少有 kvmX.deyu.wang 及 wwwX.deyu.wang 兩個網域名稱。Virtual Host 的設定可參考以下文件:
    [root@kvm5 ~]# egrep -v '(#|^$)' /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf
    <VirtualHost *:@@Port@@>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot "@@ServerRoot@@/docs/dummy-host.example.com"
        ServerName dummy-host.example.com
        ServerAlias www.dummy-host.example.com
        ErrorLog "/var/log/httpd/dummy-host.example.com-error_log"
        CustomLog "/var/log/httpd/dummy-host.example.com-access_log" common
    </VirtualHost>
    <VirtualHost *:@@Port@@>
        ServerAdmin webmaster@dummy-host2.example.com
        DocumentRoot "@@ServerRoot@@/docs/dummy-host2.example.com"
        ServerName dummy-host2.example.com
        ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"
        CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common
    </VirtualHost>
    
  2. 編輯 httpd.conf 加入 VirtualHost 段落,apache 2.4 的 httpd.conf 檔中沒有 VirtualHost 範例,要自行輸入,不過語法與其他段落一樣,關鍵字 VirtualHost 設定檔已出現,所以不會有什麼困擾。 apache 2.4 不需要再另外以 NameVirtualHost 啟動 VirtualHost。,原始主機名稱 kvm5.deyu.wang 根目錄 /var/www/html,加入另一主機名稱 www5.deyu.wang 的根目錄為 /var/www/virtual
    [root@kvm5 ~]# vim /etc/httpd/conf/httpd.conf 
    [root@kvm5 ~]# tail -8 /etc/httpd/conf/httpd.conf 
    <Virtualhost *:80>
        Documentroot /var/www/html
        Servername kvm5.deyu.wang
    </Virtualhost>
    <VirtualHost *:80>
        DocumentRoot /var/www/virtual
        ServerName www5.deyu.wang  
    </VirtualHost>
    
  3. 設定完必須啟動 httpd 服務或 reload 設定參數。
    [root@kvm5 ~]# systemctl restart httpd.service
    
  4. 建立 www5.deyu.wang 網站根目錄,並下載 virtual.html 作為 www5.deyu.wang 網站的首頁。
    [root@kvm5 ~]# mkdir /var/www/virtual
    [root@kvm5 ~]# wget http://dywang.csie.cyut.edu.tw/materials/virtual.html -O /var/www/virtual/index.html
    
  5. 讓用戶 deyu1 可以寫入目錄 /var/www/virtual。
    [root@kvm5 ~]# chown deyu1 /var/www/virtual
    
  6. 測試 kvm5.deyu.wang 及 www5.deyu.wang 兩台 virtual host 都成功連線。
    [root@kvm5 ~]# curl http://kvm5.deyu.wang
    web test
    [root@kvm5 ~]# curl http://www5.deyu.wang
    virtual test
    



2017-11-30