74.jpg?x-oss-process=image/auto-orient,1/quality,q_90/watermark,image_bG9nby5wbmc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8yMA,g_center,t_50,x_10,y_10

当我们访问一个网站时,这个数据在网络中是如何流通的,服务器之间又是如何配合处理的,今天我们来聊一下!

网络拓扑

如图,我们简单说下数据包的走向:

74-1.jpg?x-oss-process=image/auto-orient,1/quality,q_90/watermark,image_bG9nby5wbmc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8yMA,g_center,t_50,x_10,y_10

数据走向

首先,客户端会请求数据,请求通过外网连接到路由器,路由器会将请求的目标地址转换为内网IP,也就是虚拟分发192.168.1.200。

虚拟分发IP在Master服务器上面,Backup服务器使用Keepalived监测其是否存活,Backup服务器会通过VRRP协议,使用24.0.0.18组播来监测。如果Master宕掉了,Backup服务器会将虚拟IP抢过来,下次由Backup负责分发,直到Master恢复后,会将虚拟IP抢回去。

还有一种情况,就是设置两个Backup服务器,这时需要给它们设置优先值,优先值较高的服务器充当Master身份,会占有虚拟IP,当这台服务器宕机,另一台会将虚拟IP抢占过来,然后变成Master的身份。

分发器会把请求分别发送给Web服务器。Apache可以解析静态的页面,动态页面会交给PHP处理。PHP需要配合MySQL使用,在获取数据时,PHP会先去MemCache中查找,如果有此数据,PHP会直接输出给请求端,如果没有数据,PHP会去MySQL查找,MySQL将数据返回给PHP,PHP在收到数据之后,会将数据复制一份,放在MemCache中。


 评论