網頁

搜尋此網誌

2013年11月1日 星期五

Multiple Instances of Apache2 多網頁伺服器實體

這篇文章記錄如何將 Apache 設定成多個實體執行。所謂的實體 (instance) 指的是一個完整的執行環境,由多個程序 (process) 或執行緒 (thread),與一個設定組態 (configuration) 所組成。一個主機 (host) 上可以同時擁有多個執行實體,但為何需要多個 Apache 實體呢?

如果需要在一台主機上提供多個網站,使用虛擬主機 (virtual host) 的方式就可以達成,其實不需要多個 Apache 實體。不過採用虛擬主機的前提是:這些虛擬主機都是用相同的模組  (module) 的情況,例如所有的虛擬主機都是執行 PHP 而使用 php5_module 模組,或是為了執行 Python 而使用 mod_wsgi 模組。

當然,你也可以一起載入所有的模組,只是這樣不太好,明明我的虛擬主機只要執行 PHP,卻要載入其他 mod_wsgi 、 mod_perl 之類的模組,造成記憶體的浪費,對於電腦資源的利用不是很有效率。因此,面對這種「多語言」的使用情境,我們就有可能需要多個 Apache 實體。

在 Ubuntu 上建立多個 Apache 實體其實不難,先利用 apt-get install apache2 安裝完 Apache 之後,我們可以在範例中找到建立多個 Apache 實體的 script 程式碼,這個 script 基本上就是建立一組全新的設定組態和 daemon 啟動程式。使用語法如下:

usage: /usr/share/doc/apache2/examples/setup-instance <suffix>

例如:bash /usr/share/doc/apache2/examples/setup-instance mysite,就會建立一個新的mysite實體,原本常用的 apache2ctl 指令會變成 apache2ctl-mysite,其他設定檔也會多了「 -mysite」的字尾。

如果你要啟動新的 Apache 實體,記得去利用 Listen 指令修改伺服器的埠號,不然會與原本的 Apache 發生衝突。以上面例子來說,修改 /etc/apache2-mysite/ports.conf 設定檔,然後執行 sudo service apache2-mysite start 就能啟動新的 Apache 實體。

參考文件:
###

沒有留言:

張貼留言

熱門文章