基础篇一---一个服务的访问过程
来源:互联网 发布: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缓存------>给到客户端;
三、当前服务器整体结构
- 基础篇一---一个服务的访问过程
- WEB服务访问的过程
- 访问一个网页的过程
- 访问一个网站的过程
- 访问一个网页的过程
- 一个web页面的访问的过程
- 一个web页面的访问的过程
- 浏览器访问一个页面的大致过程
- 浏览器访问一个地址的过程-转载
- 从浏览器访问一个地址的过程
- 从浏览器访问一个地址的过程
- 用户访问一个网站的过程描述
- webservice知识一、SOAP风格的webservice——通过JDK的API发布一个webservice服务和创建一个webservice客户端用于访问该服务
- dubbo服务提供者暴露一个服务的详细过程
- 通过VPNC访问CISCO的VPN服务过程记录
- 存储过程的一个基础实例
- 教你如何配置一个访问samba服务的用户
- android的httppost方法访问本地web服务(一)
- 机器学习集训营---第三周总结
- SIT和UAT的区别
- RemoteCallbackList 机制分析
- A Knight's Journey
- 八、Java中的数据类型
- 基础篇一---一个服务的访问过程
- 食物链(poj--1182)
- Java中的方法以及方法重载
- 深度学习笔记---梯度消失、梯度激增
- Python勇冠排行榜首,名企大咖教你免费学
- web测试和app测试重点
- TOJ 3516.Game of Stones
- docker入门教程
- js循环