基础篇一---一个服务的访问过程

来源:互联网 发布:linux thrift源码安装 编辑:程序博客网 时间:2024/06/05 21:16

一、一些基础概念

1、域名

类似于shq.com,shq.top.shq.com.net等,称之为域名,可看到,域名一般分为两段;而对于域名,一般在添加“主机记录”后成为一个完整的域名,例如www.shq.com,mail.shq.com等等;

2、域名解析

在访问时,实际访问的是一个IP,因此需要dns服务器把域名解析到一个IP上。域名解析时,一般有两种类型,即CNMAE解析、A记录解析;

(1)CNAME解析

即把域名(这里指的是完整的一个域名)解析到另外一个域名上,例如,把www.shq.com解析到www.a.shq.com,这一般是在某域名做了cdn加速时这样解析(或者其他需求时);

(2)A记录解析

即把域名(这里指的是完整的一个域名)解析到一个IP(一般为公网IP)上,即访问这个域名,经过dns服务器解析之后,就找到了服务器的IP,即找到了真实的服务器;

3、dns

一切域名的解析都需要dns服务器,dns服务器解析时的基本原理是从后向前进行寻找,从“根”一直找到“国家”(国际域名or国内域名)然后到“一级域名”然后到“主机记录”,最终找到域名对应的服务器IP;

4、dhcp

动态主机配置协议,即给主机动态分配IP的一种服务,例如,一个路由器的局域网内的主机如何获得动态IP,就是通过dhcp服务进行的;

5、数据包

客户端和服务端之间的通信,最终的数据表现形式为数据包,即很多信息是被切分为一个一个的数据包进行传输的;

6、网络路由

即客户端和服务端之间的通信,是如何通过网络路由最终一步一步找到对方的;win下可以通过“ping 域名” 命令判断丢包率,通过“tracert  域名”命令判断网络路由;linux下则可以通过“ping 域名”来判断dns解析是否有错,通过“telnet  域名 端口"测试远程主机端口是否监听,通过“mtr  -r  IP”命令来判断丢包率;

二、一个访问的流程

因为有多种架构方式,因此会有几种不同的访问流程

(1)正常的访问,仅简单的lnmp架构,但是nginx端做了upstream;

     浏览器输入域名----->dns服务器解析为IP----->web的80端口接受请求----->判断upsteam分发策略----->代理给后端tomcat或php-fpm----->从数据库redis&memcache中取数据----->后端mysql

(2)正常的访问,前端负载均衡slb,同时后端nginx端做了upstream;

     浏览器输入域名----->dns服务器解析为IP(slb的IP)----->判断slb的分发策略----->web1的80端口接受请求----->判断upsteam分发策略----->代理给后端tomcat或php-fpm----->从数据库redis&memcache中取数据----->后端mysql

(3)正常的访问,域名做了cdn加速,同时后端nginx端做了upstream;

     浏览器输入域名----->dns服务器域名解析----->解析到cdn的cname记录上----->cdn内部的解析策略----->有缓存,则通过缓存给数据;无缓存,则向目标IP(真正的解析)请求数据----->web1的80端口接受请求----->后端mysql或者缓存取数据----->返回给cdn缓存------>给到客户端;

三、当前服务器整体结构

当前一共有16台阿里云服务器,7台slb,实体服务器18台
(1)新易联server
                            slb------------------------------------------------------------------------>新移联serve(212)------------------------------------------------->新移联mysql数据库(112)
                                                             (nginx+tomcat/php-fpm+memcache,仅单台服务器,系统盘与数据盘,4核8G)                       (mysql+mogodb,4核32G)
(2)jenkins+git及文档管理
                          git服务(146)   jenkins服务(22)
(3)***项目
                          slb---------------------------->服务器负载(38和45)--------------------------------------------------------------------------------------------------->数据库主从复制
                                (nginx+tomcat+memcache/redis,38和45构成集群负载,m和r也可以构成集群负载,但这里没有     (114主+224、117、13三从,只跑mysql 数据库服务)
(4)测试服务器241和197
                       nginx+tomcat(php-fpm)+mysql架构            nginx+tomcat(php-fpm)+memcache+mysql架构
(5)官网服务器68(因为访问流量不大,所以mysql和web在一台机器上)
                      nginx+tomcat(php-fpm)+mysql架构 
(6)图片服务器(***项目图片服务),使用了cdn进行加速
                      nginx+tomcat
(7)老系统
                      与新易联和***是一样的架构
除了阿里的服务器还使用了世纪互联机房,歌华机房的实体机服务器,主要部署了老系统,内部OA系统,bug提交系统及客服使用的其他系统
(8)还有公司内部机架一台,上面5台服务器供内部使用;

                     





原创粉丝点击