Apache2
Ubuntu

Know-How

 

在 Apache2 上, 如何使用多個網域, Domains, 指向同一台機器或 IP

你想了解的是...

對網站開發或管理人員來說, 資料的管理與運用, 是你重要的績效. 

不管是來自客戶, 或是來自於你的主管的要求. 希望你可以在同一台主機上, 安裝多個網站. 讓資源做最大的利用. 
以下我會針對不同的場景, 來解釋如何配置不同的 Web Server. 

測試的環境

OS : Ubuntu . 指令 lsb_release -a

No LSB modules are available.
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:        20.04
Codename:       focal
R16,18, 20 都可以.

  • Web Server: 
        LAMPP / Apache2
  • Apache Server Root:
        LAMPP / Apache2
  • Apache Virtual Host 路徑
        /etc/apache2/sites-available: 所有的虛擬網站設定檔位置
        /etc/apache2/sites-enabled: 所有已被啟動的虛擬網站設定檔位置
  •  

Apache2 的版本說明.  Apache2 依照安裝的環境不同, 設定檔的名稱或位置也不同. 使用者一定要注意.
. 普通的apache發行版本配置檔案 設定檔是 /etc/apache/httpd.conf
. ubuntu apache2 主配置 設定檔是 /etc/apache2/apache2.conf

CMS (Content Management Server) : 
    WordPress . 
WP 安裝路徑:
    <site 1 >: /var/www/html/<site1>

    <site 2>: /var/www/html/<site2>

以下是應用的情境說明

但以 Apache2 上設置 Virtual Host (虛擬主機) 的作法, 已經改成模組化 (Modulization) 的作法. 請看以下的說明

Coffee

情境與設定

Apache2 預設網站的設定

預設安裝 <site 1> 的情況下.  Apache2 會在 /etc/sites-enabled 中放罝兩個檔. 000-default.conf , 以及 default-ssl.conf 
000-default.conf 設定會將網站指向 apache2 的檔案路徑. 並且執行 RewriteRule 的指令. 指向 default-ssl.conf 的設定.
default-ssl.conf 設定, 會啟動 SSL 的認證功能. 也就是由 http -> https  . 如果你現在沒有啟動 SSL , Google 會將你標示成風險網站. 也就是說, 你必須要啟動 SSL 的功能.
至於, 如何啟用 SSL 功能. 會在另一篇技術文件中討論.
注意: 預設的設定, 只適用一個網域對應一個網域. 設定內容, 請直接進入 Ubuntu 上去看即可.

一個網域對應一個網址

它的功能與 Apache2 預設的功能一模一樣. 差別是, 手工的美… 直接按照管理員的想法進行變化.  但在此之前, 你的預備功課如下:

1. Virtual Host 內容

右側的設定, 是最簡短的指令檔. 
各位改改就可以用了. 

<VirtualHost *:80>
    ServerAdmin riverhsu@comhawk.com
    DocumentRoot /var/www/wps
    ServerName comhawk.com
    #ServerAlias www.comhawk.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

2.  學會啟動及關閉 Virtual Host.

在每一次 <site1>.conf 變更時, 都要進行 a2ensite , a2dissite 的動作. 
在 a2ensite 後, Apache2 都會提示你執行
systemctl reload apache2.
目的是為了讓變更的設定生效. 但你可以在所有的設定變更後, 才一次性的執行 Apache2 的重啟動作.

啟動
Path: /var/apache2/sites-available
$ sudo a2ensite <site1>.conf
$cd ../sites-enabled
$ls 
新增 sites-enabled/<site1>.conf 

關閉
Path: /var/apache2/sites-available
$ sudo a2dissite <site1>.conf
$cd ../sites-enabled
$ls 
empty. <site1>.conf 被移除

3. 重啟 Apache2 的服務.

當執行 a2ensite <site>.conf 時, Apache2 會提示要重新載入. 
但偶爾, 會發現無效. 或是設定檔有錯. 所以, 我都改用 “重啟” 

重啟
$sudo systemctl restart apache2
重新載入
$sudo systemctl reload apache2

二個網域對應一個網址

待續

使用 http 轉 https

待續

啟動 SSL 模組

待續

使用二個網域對應一個網域. 並使用 SSL 功能.

待續