淘宝网就是一个多域的应用,每个网店有自己的域名,网站则根据用户使用的域名显示不同网站的内容。
开发一般的网站应用时,只要在浏览器里输入IP地址,就可以进行测试了。对于一个多域的应用,这些是不够的。一个简单的方法就是在hosts文件中列出打算用于测试域名,比如:
如果打算用于测试的域名比较多,这个方法就不那么方便了。要是hosts能够支持通配符(*)该有多好啊。
没办法,自己搭个DNS服务器,就使用大名鼎鼎的bind。尽管bind功能强大,但要解决这个小问题,你并不用知道得太多。首先,在named.conf中声明一个域:
然后,在example_local.zone文件(这个文件的位置在named.conf中用directory配置)中配置example.local的相关信息:
看,那里有个’*‘。这样,无论你在example.local前面加上什么(当然要符合域名规则),都会解析出192.168.1.5这个IP。
运行named,启动服务器。如果网络不支持IPv6,最好加上-4参数(named -4)。如果想看看服务器的运行情况,可以加上参数-g.
Bind服务器正常运行后,你可以把系统的域名设置为127.0.0.1。不用担心你访问不了其他网站,因为bind会自动向上级域名服务器请求解析不认识的域名。
开发一般的网站应用时,只要在浏览器里输入IP地址,就可以进行测试了。对于一个多域的应用,这些是不够的。一个简单的方法就是在hosts文件中列出打算用于测试域名,比如:
192.168.1.5 dog.example.com
192.168.1.5 cat.example.com
如果打算用于测试的域名比较多,这个方法就不那么方便了。要是hosts能够支持通配符(*)该有多好啊。
没办法,自己搭个DNS服务器,就使用大名鼎鼎的bind。尽管bind功能强大,但要解决这个小问题,你并不用知道得太多。首先,在named.conf中声明一个域:
zone "example.local" IN {
type master;
file "example_local.zone";
allow-update { none; };
};
然后,在example_local.zone文件(这个文件的位置在named.conf中用directory配置)中配置example.local的相关信息:
$TTL 86400
$ORIGIN example.local.
@ 1D IN SOA @ root (
42 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS @
1D IN A 192.168.1.1
* IN A 192.168.1.5
看,那里有个’*‘。这样,无论你在example.local前面加上什么(当然要符合域名规则),都会解析出192.168.1.5这个IP。
运行named,启动服务器。如果网络不支持IPv6,最好加上-4参数(named -4)。如果想看看服务器的运行情况,可以加上参数-g.
Bind服务器正常运行后,你可以把系统的域名设置为127.0.0.1。不用担心你访问不了其他网站,因为bind会自动向上级域名服务器请求解析不认识的域名。