虛擬主機 (Virtual Host) 是在同一臺機器搭建屬于不同域名或者基于不同 IP 的多個網(wǎng)站服務(wù)的技術(shù). 可以為運行在同一物理機器上的各個網(wǎng)站指配不同的 IP 和端口, 也可讓多個網(wǎng)站擁有不同的域名.
Apache 是世界上使用最廣的 Web 服務(wù)器, 從 1.1 版開始支持虛擬主機. 本文將講解在不同服務(wù)器 (Redhat Enterprise Linux, Ubuntu Linux, Windows) 上使用 Apache 搭建虛擬主機來搭建多個網(wǎng)站.
主旨
本文旨在讓讀者知道如何在同一臺機器上搭建多個網(wǎng)站, 并附帶一些使用技巧. 以操作為主, 不會過多談及原理.
目標(biāo)
本文是寫給擁有一定的服務(wù)器配置和管理技能, 工作中需要同時維護多個網(wǎng)站的網(wǎng)站主, 網(wǎng)站開發(fā)者和網(wǎng)絡(luò)管理員. 如果你是互聯(lián)網(wǎng)公司的配管工程師, 對計算機服務(wù)器原理和操作十分熟悉, 請忽視本文, 你不會在上面找到太多有價值的東西.
Redhat Enterprise Linux
Redhat Enterprise Linux (包括 CentOS Linux), 是使用最廣的 Linux 服務(wù)器, 大量的網(wǎng)站應(yīng)用都部署在其上.
1. 打開文件 /etc/httpd/conf/httpd.conf, 搜索 VirtualHost example, 找到代碼如下:
#
# 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 *:80>
# 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>
2. 仿照例子, 添加一段代碼來指定某一域名的網(wǎng)站.
#
# DocumentRoot 是網(wǎng)站文件存放的根目錄
# ServerName 是網(wǎng)站域名, 需要跟 DNS 指向的域名一致
#
<VirtualHost *:80>
ServerAdmin zhao.wuz@alibaba-inc.com
DocumentRoot /var/www/httpdocs/demo_aliluna_com
ServerName demo.aliluna.com
ErrorLog logs/demo.aliluna.com-error.log
CustomLog logs/demo.aliluna.com-access.log common
</VirtualHost>
3. 重啟 httpd 服務(wù), 執(zhí)行以下語句.