Linux/Python学习论坛-京峰教育

 找回密码
 立即注册

一键登录:

搜索
热搜: 活动 交友 discuz
查看: 781|回复: 0

大众点评网的网站架构

[复制链接]

238

主题

288

帖子

1925

积分

超级版主

Rank: 8Rank: 8

积分
1925
QQ
发表于 2015-3-20 16:50:06 | 显示全部楼层 |阅读模式
大众点评网由张涛创建于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.comwww.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.comwww.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服务器时,还需要维护一台授权服务器,控制哪些域名可以进行缓存,而哪些又不进行缓存,以免发生开放代理的情况。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|京峰教育,只为有梦想的人 ( 京ICP备15013173号 )

GMT+8, 2020-2-23 11:57 , Processed in 0.030351 second(s), 12 queries , Redis On.

快速回复 返回顶部 返回列表