1. 程式人生 > >【技術小記 | 伺服器】Linux環境下Apache2配置多個虛擬主機

【技術小記 | 伺服器】Linux環境下Apache2配置多個虛擬主機

image

歡迎大家訪問我的個人部落格:吳佳軼 | WuJiaYi,第一時間獲取最新的文章。

多域名訪問同一主機

從去年開始就一直維護著目前的這個技術部落格,前不久突然想搭建一個與技術無關的個人網站,釋出一些生活上的好玩趣事、釋出一些自己的攝影作品。新域名備案成功後,遇到了一個問題,如何在擁有一臺伺服器,一個公網IP的情況下,部署兩個或多個不同的網站。經過詳細瞭解後,總結出這篇使用Apache2配置多個虛擬主機的教程。

我們的需求

假設我們現在擁有 www.a.comwww.b.com 兩個域名,以及一個擁有公網IP ( 158.58.58.58 ) 的伺服器。

現在想通過不同域名訪問同一個IP的伺服器下,不同的根目錄。例如:/var/www/a/

/var/www/b

第一步 : 修改hosts檔案

  • 用 vim 開啟 /etc/hosts 檔案。
[root@yourname /]# vim /etc/hosts
  • 在檔案末尾新增內容:IP地址 + 域名 (中間有空格)。

hosts

第二步 : 修改 httpd.conf

  • 修改 httpd.conf 檔案,找到 NameVirtualHost *:80 ,在語句前面加 # 註釋。
  • 如果配置檔案是 apache2.conf 則直接跳過此步驟。

第三步 : 修改 httpd-vhosts.conf 或 000-default.conf 檔案

  • 修改配置檔案 httpd-vhosts.conf
    ,在檔案末尾加入如下程式碼:
<VirtualHost *:80>
    DocumentRoot  /var/www/a
    ServerName    www.a.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot  /var/www/b
    ServerName    www.b.com
</VirtualHost>
  • 如果使用 apt-get 安裝的 Apache2 ,請修改 /etc/apache2/sites-enabled/000-default.conf 檔案。新增程式碼同上。
  • 重啟 Apache : sudo /etc/init.d/apache2 restart
  • 虛擬主機配置結束。

驗證

使用瀏覽器分別輸入 www.a.comwww.b.com ,驗證是否配置成功。