
它的目的就通过调度集群,达到最佳化资源使用,最大化吞吐率,最小化响应时间,避免单点过载的问题。
负载均衡可以根据网络协议的层数进行分类,我们这里以ISO模型为准,从下到上分为:
物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
当客户端发起请求,会经过层层的封装,发给服务器,服务器收到请求后经过层层的解析,获取到对应的内容。
二层负债均衡是基于数据链路层的负债均衡,即让负债均衡服务器和业务服务器绑定同一个虚拟IP(即VIP),客户端直接通过这个VIP进行请求,那么如何区分相同IP下的不同机器呢?没错,通过MAC物理地址,每台机器的MAC物理地址都不一样,当负载均衡服务器接收到请求之后,通过改写>Web 服务器层对于传统的客户端 - 服务器架构,客户端向服务器发送请求,服务器接收请求,处理请求,最后给客户端返回请求的响应,即简单来说,一个服务器的作用是:接收请求处理请求返回响应此文我们探讨web服务器,常见的web服务器有Nginx,Apache等。在这个三层结构中,web 服务器是最先接收到用户的请求的。Web框架层常见的web框架有Flask,Django等,我们以Flask框架为例子,展示web框架的作用:from flask import Flaskapp = Flask(__name__)@approute('/')def hello_world(): return 'Hello World!'if __name__ == '__main__': apprun()123456789以上简单的几行代码,就创建了一个web应用程序对象app。 Web框架为我们提供路由管理,cookies管理等功能,让我们只需要关心业务的逻辑,提高开发的效率。WSGI层WSGI不是服务器,也不是用于与程序交互的API,更新不真实的代码,而只是一种接口。它只适用于Python语言,其全称为Web Server Gateway Interface,定义了web服务器和web应用之间的接口规范。也就是说,只要web服务器和web应用都遵守WSGI协议,那么web服务器和web应用就可以随意的组合。def application(env, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return [b"Hello World"]123代码中的env,start_response变量由web服务器传入,其中,env是一个字典,包含了类似>服务器哪能主动发啊!服务器是被动型的,只有客户端的请求过来,它才能返回数据。具体原因你可以去查下公网和私网。
如果是客户端先请求过来,然后服务器一直向客户端发数据,这种是可以的,但是要求客户端一直处于接收状态,需要你客户端的程序逻辑来设定。公钥免密登录的过程如下
1、客户端发送自己的公钥给服务器,写入到服务器的authorized_keys文件中
2、服务器接收到客户端的连接请求后,在自己authorized_keys文件中匹配,是否存在该客户端的公钥信息,如果存在就生成一个随机数R,再用客户端的公钥,针对随机数R进行加密,得到了一个加密后的随机数公钥(R),pubkey(R)
3、客户端通过自己的私钥,对pubkey(R)进行解密,得到了随机数R,再针对这个随机数R和当前连接会话sessionkey采用MD5加密方式,生成摘要Digest1,再次发送服务器进行验证
4、服务器针对这个随机数R和sessionkey也采用同样的摘要算法计算得出Digest2
5、服务器比对Digest1、Digest2是否一致,一致则验证通过,客户端登录服务器
登录Linux服务器的形式require和accept是>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)