歡迎您光臨本站 註冊首頁

虛擬主機(Web/Mail)的設定摘要

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  以下內容是依實際的使用經驗整理, 有關「虛擬主機」因為關聯到各個不同的程式(httpd、named、sendmail), 所以似乎沒有「單一完整」資料, 在參照各別文件後, try try 出來用, 以下各項可能不甚完善, 但確定可以工作無誤,若有不正確、不妥的地方還請大家指正.

由於市場競爭以及不是每個人都能方便的24小時連接 Internet, 目前幾乎
各個 ISP 都「出賣虛擬主機」, 且「售價不低」, 這個看似「略有」難度的工作若用一台 Intel_Based_PC 來做的話, (除專線費用外)其實是很低成本,或許幾個人合租一條中、低速度的專線(看實際需要吧!), 再用 Linux 來當工作平台, 就可以省下一筆不小的開銷了!底下以一台 跑 Linux 的 PC + Apache + sendmail + bind來說明。

* * * * * *

所謂「虛擬主機」主要是指「虛擬 Web Server」, 但光是這個還不算完整,於是還要有個「虛擬 Mail Server」來搭配, 而這兩者同時必需仰賴「真實DNS server」才能構成整套的「虛擬」動作.

當然, 各個 domain name 要正式在 twnic 或 internic 或 alternic 或其它國家的主管單位註冊過才能生效.

還有, 以下設定算是重點摘要, 最好事先對基本的 Apache、named、sendmail有一些了解, 才能避開執行的可能的問題.

* * * * * *

■■■
Apache 大概是目前用來當「虛擬 Web 主機」的最熱門 daemon, 說明如下:
設定好它可以接受哪些 domain name 的呼叫, 一遇到 browser 端向它要求某個 domain name 時, 它就會去抓相對的 directory 下的檔案丟給 browser


假設除了「真實公司」外, 另有 aaa、bbb、ccc 三家公司及團體共用這台
真實 Web server, 那麽分別建立
/home/aaa
/home/bbb
/home/ccc
當然三個目錄下, 它們各有各的 index.html
/home/aaa/index.html
/home/bbb/index.html
/home/ccc/index.html

在 Apache 的 httpd.conf 尾段里設定如下:


ServerAdmin john@aaa.com.tw
DocumentRoot /home/aaa
ServerName www.aaa.com.tw
ErrorLog logs/aaa-error_log
TransferLog logs/aaa-access_log



ServerAdmin peter@bbb.com.tw
DocumentRoot /home/bbb
ServerName www.bbb.com.tw
ErrorLog logs/bbb-error_log
TransferLog logs/bbb-access_log



ServerAdmin victor@ccc.org.tw
DocumentRoot /home/ccc
ServerName www.ccc.org.tw
ErrorLog logs/ccc-error_log
TransferLog logs/ccc-access_log


■■■
在 named(以8.1.1以後版本為例) 這邊:

在原有 named.conf 里加入:
zone "aaa.com.tw" in { type master; file "file1.aaa"; };
zone "bbb.com.tw" in { type master; file "file1.bbb"; };
zone "ccc.org.tw" in { type master; file "file1.ccc"; };

在 /etc/named/file1.aaa 則是:
@ IN SOA .....這些跟「原主機」內容一樣.....
IN NS my_net_domain.com.tw. <--這是真實跑 bind 這台
www IN A 172.16.1.1
IN MX 0 aaa.com.tw.
aaa.com.tw. IN A 172.16.1.1
IN MX 0 aaa.com.tw.

在 /etc/named/file1.bbb 則是:
@ IN SOA .....這些跟「原主機」內容一樣.....
IN NS my_net_domain.com.tw. <--這是真實跑 bind 這台
www IN A 172.16.1.1
IN MX 0 bbb.com.tw.
bbb.com.tw. IN A 172.16.1.1
IN MX 0 bbb.com.tw.

在 /etc/named/file1.ccc 則是:
@ IN SOA .....這些跟「原主機」內容一樣.....
IN NS my_net_domain.com.tw. <--這是真實跑 bind 這台
www IN A 172.16.1.1
IN MX 0 ccc.org.tw.
ccc.org.tw. IN A 172.16.1.1
IN MX 0 ccc.org.tw.

■■■
在 sendmail 這邊:

到 /etc/sendmail.cf 里加上各個 domain name 到 Cwlocalhost 後面, 用空白隔開各個名字:

Cwlocalhost aaa.com.tw bbb.com.tw ccc.org.tw

這就可以單一台 mail server 分別收各人的信
john@aaa.com.tw
peter@bbb.com.tw
victor@ccc.org.tw

不過先前有人提到若是同一個名字怎麽辦?
clinton@aaa.com.tw
clinton@bbb.com.tw
clinton@ccc.org.tw

目前我只能以「不開同一個ID」來避開這個問題.

■■■
另外, 假如 Web Server 跟 Mail Server 是分別獨立的兩台, 為便例一般
user 的操作, 可以把 Web Server 的 /home/aaa 這個目錄 export 出來給Mail server 掛到 john 這個 user 的某個目錄下, 例如/home/john/www

這樣當 john 把檔案(HTML、影像...) 丟到 Mail server 時, 事實上是丟
到 Web server 里的 aaa 公司之下, 由於要把別台的目錄 mount 進來是只有 root 才能做, 所以這樣 export/mount 應該沒什麽問題吧?


[火星人 ] 虛擬主機(Web/Mail)的設定摘要已經有439次圍觀

http://coctec.com/docs/linux/show-post-69952.html