当前位置:Linux教程 - Linux - 「虚拟主机」(Web-Mail)的设定摘要(转)

「虚拟主机」(Web-Mail)的设定摘要(转)



         由於市场竞争以及不是每个人都能方便的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 [email protected] DocumentRoot /home/aaa ServerName www.aaa.com.tw ErrorLog logs/aaa-error_log TransferLog logs/aaa-access_log


    ServerAdmin [email protected] DocumentRoot /home/bbb ServerName www.bbb.com.tw ErrorLog logs/bbb-error_log TransferLog logs/bbb-access_log


    ServerAdmin [email protected] 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 分别收各人的信 [email protected] [email protected] [email protected]
    不过先前有人提到若是同一个名字怎麽办? [email protected] [email protected] [email protected]
    目前我只能以「不开同一个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 应该没什麽问题吧?
    遗、误之处请大家补一补吧

    发布人:Crystal 来自:Linux技术支持网站