大众点评网的网站架构

时间:2021-12-13 14:50:24
大众点评网由张涛创建于2003年4月,是中国最大的城市生活消费指南网站。其主要致力于为中国消费者提供本地的餐饮、休闲、娱乐等生活服务发表评论、分享信息的平台,并为广大潜在的消费者提供客观、准确的本地化消费信息指南。 大众点评网在2008年12月已实现在今年年初制定的月收入人民币500万元的盈利目标,Via: http://tech.sina.com.cn/i/2008-12-01/00222613619.shtml 我也是大众点评网的用户之一,而且是注册用户,也会经常上大众点评网,对大众点评网的UI/UE非常喜欢,细节处理得非常好,同时也能给大家带来非常有价值及有用的服务,而且这一切都是免费的,有谁不喜欢既是免费又有好的体验的服务呢。 下面说说我自己所了解的大众点评网的网站架构情况 1.用nslookup命令查询大众点评网的域名情况 C:/Users/caihuafeng>nslookup www.dianping.com 服务器: ns.crcbj.com Address: 61.233.9.9 非权威应答: 名称: 1st.attack.glb0.lxdns.com Addresses: 218.60.1.134 218.60.1.76 Aliases: www.dianping.com www.dianping.com.cdn20.com Aliases是别名的意思,大概的意思可能是www.dianping.com及www.dianping.com.cdn20.com是域名1st.attack.glb0.lxdns.com的别名 2.nslookup -qt=ns dianping.com C:/Users/caihuafeng>nslookup -qt=ns dianping.com 服务器: ns.crcbj.com Address: 61.233.9.9 非权威应答: dianping.com nameserver = ns3.chinanetcenter.com dianping.com nameserver = ns1.chinanetcenter.com ns3.chinanetcenter.com internet address = 61.129.75.225 ns1.chinanetcenter.com internet address = 61.129.64.3 我们在上面可以看到(nameserver也就是表示域名服务器的意思)dianping.com的域名服务器用的是网宿科技的dns服务器,因为要用它们的cdn服务。网宿科技有两台域名服务器提供服务。 3.nslookup -qt=ns www.dianping.com C:/Users/caihuafeng>nslookup -qt=ns www.dianping.com 服务器: ns.crcbj.com Address: 61.233.9.9 非权威应答: www.dianping.com canonical name = www.dianping.com.cdn20.com www.dianping.com.cdn20.com canonical name = 1st.attack.glb0.lxdns.com canonical name简称cname,通常称别名指向,也就是www.dianping.com指向www.dianping.com.cdn20.com,www.dianpng.com.cdn20.com指向1st.attack.glb0.lxdns.com。 流程大致是这样的,用户在浏览里输入域名www.dianping.com后,由于dianping.com域对应的域名服务器是ns1或ns3.chinanetcenter.com,从其中某一台域名服务器的区域文件(或者其它的方式)找到cname的记录www.dianping.com.cdn20.com,而域名www.dianping.com.cdn20.com是网宿科技的域名,具体过程由他们公司来进行解析,解析完成以后,然后就是网宿科技内部的cdn系统的一些流程。可以参考下面的9进行对照理解。 attack.glb0.lxdns.com 实际上下面的内容就是DNS服务器上区域文件的内容(所谓区域文件就是包含了此域中名字到IP地址解析记录的一个文件) primary name server = ns1.glb0.lxdns.com(这个是主域名服务器) responsible mail addr = webmaster.glb0.lxdns.com serial = 90717001 refresh = 10800 (3 hours) retry = 3600 (1 hour) expire = 604800 (7 days) default TTL = 60 (1 min) 4.发现上述有一个含有cdn的域名,猜测应该是提供cdn服务的服务器,在浏览中输入http://www.dianping.com.cdn20.com/时,出现如下的提示信息: 您所请求的网址(URL)无法获取 当尝试读取以下网址(URL)时: http://www.dianping.com.cdn20.com/ 发生了下列的错误: 无法将您输入的主机名称:www.dianping.com.cdn20.com转换成 IP 地址 域名服务器返回以下讯息: Server Failure: The name server was unable to process this query. 这表示: The cache was not able to resolve the hostname presented in the URL. Check if the address is correct. 缓存服务器无法解析您输入网址(URL)中的主机名称, 请检查该名称是否正确。 本缓存服务器管理员:cdnsupport@chinanetcenter.com Generated Wed, 12 Aug 2009 09:24:50 GMT by cache.51cdn.com (Cdn Cache Server V2.0) 从以上的提示信息可以看出,大众点评网使用了付费的cdn服务,是网宿科技提供的cdn,域名http://www.chinanetcenter.com/是网宿科技的另一个域名 5.域名 www.dianping.com、1st.attack.glb0.lxdns.com及www.dianping.com.cdn20.com指向同一台服务器 C:/Users/caihuafeng>nslookup 1st.attack.glb0.lxdns.com 服务器: ns.crcbj.com Address: 61.233.9.9 非权威应答: 名称: 1st.attack.glb0.lxdns.com Addresses: 218.60.1.134 218.60.1.76 C:/Users/caihuafeng>nslookup www.dianping.com.cdn20.com 服务器: ns.crcbj.com Address: 61.233.9.9 非权威应答: 名称: 1st.attack.glb0.lxdns.com Addresses: 218.60.1.134 218.60.1.76 Aliases: www.dianping.com.cdn20.com 6.查看域名www.dianping.com对应的服务器开通了哪些服务及使用的什么操作系统 大众点评网用的也是linux操作系统,可是大众点评网是用.net开发的,难道与京东商城一样,用的也是mono软件来在linux下运行.net程序吗? [root@CentOS_Test_Server ~]# nmap -O www.dianping.com Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-08-12 17:46 CST Warning: Hostname www.dianping.com resolves to 2 IPs. Using 218.60.1.76. Interesting ports on cncln.online.ln.cn (218.60.1.76): Not shown: 1672 closed ports PORT STATE SERVICE 80/tcp open http 111/tcp open rpcbind 199/tcp open smux 443/tcp open https 623/tcp filtered unknown 631/tcp open ipp 873/tcp open rsync 3000/tcp open ppp Device type: general purpose Running: Linux 2.4.X|2.6.X OS details: Linux 2.4.18 - 2.4.19 w/o tcp_timestamps, Linux 2.4.19 (Mandrake, X86), Linux 2.4.20 or 2.6.0-test5-love3 (x86), Linux 2.4.7 (x86) Nmap finished: 1 IP address (1 host up) scanned in 10.757 seconds 7.大众点评网的Web Server可能是自己开发的,名为DPW C:/Users/caihuafeng>curl -I www.dianping.com HTTP/1.0 500 Internal Server Error Date: Wed, 12 Aug 2009 09:50:30 GMT Server: DPW(可能应该是DianPingWeb的意思) Warn: 7 Cache-Control: private Content-Type: text/html; charset=utf-8 Content-Length: 1329 Set-Cookie: lb.dp=117506314.20480.0000; path=/ Via: 1.0 tj252:80 (Cdn Cache Server V2.0), 1.0 lnsy134:80 (Cdn Cache Server V2.0 ) Connection: close 8.其它 大众点评基于Lucene开发了自己的全文检索系统(DPL系统),DPL的全称应该是DianPing Lucene的意思吧),说明一下, Lucene也有.net版本;另外大众点评网还使用了Memcached。如果上述页面无法访问(btw:我在写这篇文章的时候还真的访问不了),可以访问如下的网址,可以点击这儿,直接用百度快照查看即可。 9.CDN的介绍及开通过程(摘抄自网上) CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。 作为ICP,只需要把域名解释权交给CDN运营商,其他方面不需要进行任何的修改;操作时,ICP修改自己域名的解析记录,一般用cname方式指向CDN网络Cache服务器的地址。    作为CDN运营商,首先需要为ICP的域名提供公开的解析,为了实现sortlist,一般是把ICP的域名解释结果指向一个CNAME记录; 当需要进行sorlist时,CDN运营商可以利用DNS对CNAME指向的域名解析过程进行特殊处理,使DNS服务器在接收到客户端请求时可以根据客户端的IP地址,返回相同域名的不同IP地址;    由于从cname获得的IP地址,并且带有hostname信息,请求到达Cache之后,Cache必须知道源服务器的IP地址,所以在CDN运营商内部维护一个内部DNS服务器,用于解释用户所访问的域名的真实IP地址;    在维护内部DNS服务器时,还需要维护一台授权服务器,控制哪些域名可以进行缓存,而哪些又不进行缓存,以免发生开放代理的情况。