如果需要在一台主機上提供多個網站,使用虛擬主機 (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 實體。
參考文件:
- http://wiki.apache.org/httpd/RunningMultipleApacheInstances
- /usr/share/doc/apache2/README.multiple-instances
沒有留言:
張貼留言