官术网_书友最值得收藏!

3.5 虛擬主機(jī)的設(shè)置

Web服務(wù)器提供的另一個(gè)服務(wù)就是虛擬域的主機(jī)功能,也稱為虛擬主機(jī)。虛擬主機(jī)是一個(gè)完整的Web站點(diǎn),有自己的域名,但是在同一臺(tái)計(jì)算機(jī)上作為多個(gè)Web站點(diǎn)的主機(jī)。Apache通過在httpd.conf文件中設(shè)置指令的簡(jiǎn)單方法實(shí)現(xiàn)了該功能。

有兩種方法在Apache服務(wù)器上設(shè)置虛擬主機(jī)。可以使用一個(gè)IP地址對(duì)應(yīng)一個(gè)CNAME (Computer Name)的方法,也可以用一個(gè)IP地址對(duì)應(yīng)多個(gè)CNAME。Apache有不同的指令集處理這些選項(xiàng)的每一種。

3.5.1 一個(gè)IP地址對(duì)應(yīng)一個(gè)CNAME(IP型虛擬主機(jī))

假設(shè)服務(wù)器的IP地址是15.2.40.9,欲在該機(jī)器上建立www.gong.com的虛擬主機(jī)。用Apache很容易實(shí)現(xiàn)這個(gè)功能。在httpd.conf文件的最后面可以看到類似于如下的代碼:

    #
    # VirtualHost: If you want to maintain multiple domains/hostnames on your
    # machine you can setup VirtualHost containers for them. Most configurations
    # use only name-based virtual hosts so the server doesn't need to worry about
    # IP addresses. This is indicated by the asterisks in the directives below.
    #
    # Please see the documentation at
    # <URL:http://httpd.apache.org/docs-2.0/vhosts/>
    # for further details before you try to setup virtual hosts.
    #
    # You may use the command line option '-S' to verify your virtual host
    # configuration.
    #
    # Use name-based virtual hosting.
    #
    #NameVirtualHost *
    #
    # VirtualHost example:
    # Almost any Apache directive may go into a VirtualHost container.
    # The first VirtualHost section is used for requests without a known
    # server name.
    #
    #<VirtualHost *>
    #    ServerAdmin webmaster@dummy-host.example.com
    #    DocumentRoot /www/docs/dummy-host.example.com
    #    ServerName dummy-host.example.com
    #    ErrorLog logs/dummy-host.example.com-error_log
    #    CustomLog logs/dummy-host.example.com-access_log common
    #</VirtualHost>

修改上述代碼中<VirtualHost *>和</VirtualHost>之間的部分,即可實(shí)現(xiàn)一個(gè)IP地址映射到一個(gè)虛擬主機(jī)上。

    //設(shè)置虛擬主機(jī)
    <VirtualHost 15.2.40.9>
        ServerAdmin webmaster@gong.com               //虛擬主機(jī)網(wǎng)絡(luò)管理員郵箱
        DocumentRoot /www/docs/gong                  //虛擬主機(jī)主目錄
        ServerName gong.com                          //虛擬主機(jī)名稱
        ErrorLog logs/gong.com-error_log             //虛擬主機(jī)錯(cuò)誤日志文件
        CustomLog logs/gong.com-access_log common    //虛擬主機(jī)訪問日志
    </VirtualHost>

3.5.2 一個(gè)IP地址對(duì)應(yīng)多個(gè)CNAME(名字型虛擬主機(jī))

Web服務(wù)器可以獲得訪問它的瀏覽器所在主機(jī)的名稱。基于這些名稱,Apache可以被配置成能提供多個(gè)Web站點(diǎn)服務(wù)的形式,從而使DNS將這些站點(diǎn)都解析到同一個(gè)IP地址。用戶可以試著在瀏覽器中輸入“www.163.com”和“www.netease.com”,可以發(fā)現(xiàn)返回的頁面完全相同。這是因?yàn)榫W(wǎng)易公司同時(shí)注冊(cè)了這兩個(gè)域名,而這兩個(gè)域名對(duì)應(yīng)的IP地址以及網(wǎng)站頁面又完全一樣。類似于這種兩個(gè)不同域名的情況完全可以用一個(gè)Apache服務(wù)器實(shí)現(xiàn)。在Apache的虛擬主機(jī)設(shè)置部分,將兩個(gè)不同域名映射到同一個(gè)IP地址,而且DocumentRoot也配置相同即可(當(dāng)然網(wǎng)易公司并不一定是采用的Apache服務(wù)器,即使采用Apache服務(wù)器也可能是在不同IP地址的機(jī)器上分別安裝Web服務(wù)器)。修改上述代碼中<VirtualHost*>和</VirtualHost>之間的部分,即可以實(shí)現(xiàn)一個(gè)IP地址映射到多個(gè)虛擬主機(jī)上。

    //設(shè)置第一個(gè)虛擬主機(jī)
    <VirtualHost 15.2.40.9>
        ServerAdmin webmaster@gong.com               //第一個(gè)虛擬主機(jī)網(wǎng)絡(luò)管理員郵箱
        DocumentRoot /www/docs/gong                  //第一個(gè)虛擬主機(jī)主目錄
        ServerName gong.com                          //第一個(gè)虛擬主機(jī)名稱
        ErrorLog logs/gong.com-error_log             //第一個(gè)虛擬主機(jī)錯(cuò)誤日志文件
        CustomLog logs/gong.com-access_log common    //第一個(gè)虛擬主機(jī)訪問日志
    </VirtualHost>
    <VirtualHost 15.2.40.9>
        ServerAdmin webmaster@chuck.com              //第二個(gè)虛擬主機(jī)網(wǎng)絡(luò)管理員郵箱
        DocumentRoot /www/docs/ chuck.com            //第二個(gè)虛擬主機(jī)主目錄
        ServerName chuck.com                         //第二個(gè)虛擬主機(jī)名稱
        ErrorLog logs/chuck.com-error_log            //第二個(gè)虛擬主機(jī)錯(cuò)誤日志文件
        CustomLog logs/chuck.com-access_log common   //第二個(gè)虛擬主機(jī)訪問日志
    </VirtualHost>

★ 注意 ★

如果系統(tǒng)只有一塊網(wǎng)絡(luò)適配卡,那么在<VirtualHost >中必須配置完全一樣的IP地址才能保證在同一臺(tái)機(jī)器實(shí)現(xiàn)不同的虛擬主機(jī)。

主站蜘蛛池模板: 当阳市| 深圳市| 松江区| 鸡东县| 罗定市| 平定县| 临朐县| 平利县| 巴里| 金昌市| 天祝| 铜山县| 东辽县| 宣武区| 都安| 乌恰县| 东光县| 金平| 宾阳县| 弋阳县| 仙居县| 郧西县| 临颍县| 澄迈县| 龙南县| 宿迁市| 乐都县| 蛟河市| 健康| 肇庆市| 界首市| 谢通门县| 惠州市| 静乐县| 丽江市| 绍兴县| 奇台县| 诏安县| 晋宁县| 富锦市| 高邮市|