Linux 版 (精华区)
发信人: netiscpu (夜☆星光点点☆), 信区: Linux
标 题: [文档]「虚拟主机」(Web/Mail)的设定摘要
发信站: 紫 丁 香 (Mon Oct 12 00:12:45 1998), 转信
发信人: dfbb (赵无忌☆迷恋红尘), 信区: Linux
标 题: [文档]「虚拟主机」(Web/Mail)的设定摘要(转自台湾BB
发信站: BBS 水木清华站 (Sun Oct 11 21:26:15 1998)
分别在几个版都看到在问「虚拟主机」, 大热天的, 藉机灌个水, 清凉一下 !
以下内容是依实际的使用经验整理, 有关「虚拟主机」因为关联到各个不同的
程式(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 尾段里设定如下:
<VirtualHost www.aaa.com.tw>
ServerAdmin john@aaa.com.tw
DocumentRoot /home/aaa
ServerName www.aaa.com.tw
ErrorLog logs/aaa-error_log
TransferLog logs/aaa-access_log
</VirtualHost>
<VirtualHost www.bbb.com.tw>
ServerAdmin peter@bbb.com.tw
DocumentRoot /home/bbb
ServerName www.bbb.com.tw
ErrorLog logs/bbb-error_log
TransferLog logs/bbb-access_log
</VirtualHost>
<VirtualHost www.ccc.org.tw>
ServerAdmin victor@ccc.org.tw
DocumentRoot /home/ccc
ServerName www.ccc.org.tw
ErrorLog logs/ccc-error_log
TransferLog logs/ccc-access_log
</VirtualHost>
■■■
在 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 应该没什麽问题吧?
遗、误之处请大家补一补吧 ^_^
--
m5m※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 159.226.41.99]m
--
Enjoy Linux!
-----It's FREE!-----
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: mtlab.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.342毫秒