有时候写一个Crawl网页的程序,希望有一个稳定,高速,能自己定制的网络环境,并且能随意添加不同的Doamin,这样可以排除外界因素的干扰来测试你的程序.
使用Hosts文件和Apache的Virtualhost机制可以搭建一个私有的网络环境使得多个domain映射到同一个主机成为可能,而且不需要额外的费用。
下面先介绍一下Hosts文件和Apache Virtual host机制的配置
1. Hosts文件
Hosts文件可以实现将多个domain映射到指定的IP.
Hosts file Sample:
##########################################################
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
172.23.216.75 l-spoofserver
172.23.216.75 www.mydomain01.com
172.23.216.75 www.mydomain02.com
172.23.216.75 www.somedomain.com
##########################################################
其中第一列式Apache Server的IP,第二列是需要映射的domain.
172.23.216.75 www.mydomain01.com
这行表示在你发请求给www.mydomain01.com时,操作系统将请求发给172.23.216.75的主机,而不是通过域名解析的机制来获取IP.
Remark:
Hosts文件并不是只有Windows有,大多数操作系统都有这东东.
Hosts文件的位置:
- Windows NT/2000/XP/2003/Vista 默认路径:
默认路径改变的情况下,可以参考注册表项
- Linux and other Unix-like operating systems:
2. Apache Service配置:
在Apache Service的配置文件中使用Virtual Host机制可以让一台主机处理多个Domain的请求。
Httpd.conf
########################################################################
# Version: Thu Jul 3 21:05:42 2008
NameVirtualHost 172.23.216.75:80
# Start VirtualHost Definitions:
<VirtualHost 172.23.216.75:80>
DocumentRoot /var/www/html/MySites/www.a.com
ServerName www.a.com
</VirtualHost>
########################################################################
上面的配置表示,监听172.23.216.75的80端口,若收到www.a.com相关的http请求,相应的文件在/var/www/html/MySites/www.a.com目录下查找。
Steps:
1. 更新需要访问Apache Server上数据的主机的hosts文件,将希望添加需要映射的Domain和Apache Server的IP.
2. Restart更新了hosts文件的主机,让操作系统重新加载该文件.
3. 更新Apache Server的httpd.conf,添加Virtual host与文件路径的映射关系. (在Linux中请确认相应路径的权限)
4. Restart Apache Services.
Linux: apache2 -k restart
Remark:
如果想在IE中访问你Apache Server上的Domain,可以在IE->Tools->Internet Options->Connections中,取消Automatically detect settings,Apply后在地址栏中输入相应的Domain.
参考资料
Apache Online Document: http://httpd.apache.org/docs/2.2/
Hosts file: http://en.wikipedia.org/wiki/Hosts_file
使用Hosts文件和Apache的Virtualhost机制可以搭建一个私有的网络环境使得多个domain映射到同一个主机成为可能,而且不需要额外的费用。
下面先介绍一下Hosts文件和Apache Virtual host机制的配置
1. Hosts文件
Hosts文件可以实现将多个domain映射到指定的IP.
Hosts file Sample:
##########################################################
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
172.23.216.75 l-spoofserver
172.23.216.75 www.mydomain01.com
172.23.216.75 www.mydomain02.com
172.23.216.75 www.somedomain.com
##########################################################
其中第一列式Apache Server的IP,第二列是需要映射的domain.
172.23.216.75 www.mydomain01.com
这行表示在你发请求给www.mydomain01.com时,操作系统将请求发给172.23.216.75的主机,而不是通过域名解析的机制来获取IP.
Remark:
Hosts文件并不是只有Windows有,大多数操作系统都有这东东.
Hosts文件的位置:
- Windows NT/2000/XP/2003/Vista 默认路径:
%SystemRoot%/system32/drivers/etc/
默认路径改变的情况下,可以参考注册表项
/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/DataBasePath
的值.
- Linux and other Unix-like operating systems:
/etc
2. Apache Service配置:
在Apache Service的配置文件中使用Virtual Host机制可以让一台主机处理多个Domain的请求。
Httpd.conf
########################################################################
# Version: Thu Jul 3 21:05:42 2008
NameVirtualHost 172.23.216.75:80
# Start VirtualHost Definitions:
<VirtualHost 172.23.216.75:80>
DocumentRoot /var/www/html/MySites/www.a.com
ServerName www.a.com
</VirtualHost>
########################################################################
上面的配置表示,监听172.23.216.75的80端口,若收到www.a.com相关的http请求,相应的文件在/var/www/html/MySites/www.a.com目录下查找。

Steps:
1. 更新需要访问Apache Server上数据的主机的hosts文件,将希望添加需要映射的Domain和Apache Server的IP.
2. Restart更新了hosts文件的主机,让操作系统重新加载该文件.
3. 更新Apache Server的httpd.conf,添加Virtual host与文件路径的映射关系. (在Linux中请确认相应路径的权限)
4. Restart Apache Services.
Linux: apache2 -k restart
Remark:
如果想在IE中访问你Apache Server上的Domain,可以在IE->Tools->Internet Options->Connections中,取消Automatically detect settings,Apply后在地址栏中输入相应的Domain.
参考资料
Apache Online Document: http://httpd.apache.org/docs/2.2/
Hosts file: http://en.wikipedia.org/wiki/Hosts_file