2019/05/31 反向代理调度算法

刚才在fastcgi启用了一些设置,比如Ping,pong之类的
也可以利用fastcgi的status这样的地址来进行访问查看状态,进程信息等若干内容,
在前端的nginx服务器上去加载响应的配置才能得到相应的状态信息

在这里插入图片描述
在这里插入图片描述
*~代表正则表达式匹配,发送ping或是status就转发到后端服务器上
在这里插入图片描述
在这里插入图片描述
找不到是因为之前把配置文件进行修改了,把之前加的删除
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改php设置路径
在这里插入图片描述在这里插入图片描述
修改一下nginx设置
在这里插入图片描述
先在可以了,说明原来路径错误了
在这里插入图片描述
在这里插入图片描述
也不一定非要叫这名字,路径应该是定制的,只要对应好就没有关系了
在这里插入图片描述
在nginx服务器删也要进行修改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
listenqueue len 监听的队列长度是多少,而且查看的时候可以换不同格式显示
在这里插入图片描述
+?可以更详细地显示
在这里插入图片描述
也可以换成html格式的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同样fastccgi也支持缓存
在这里插入图片描述
在这里插入图片描述
试试与刚才的缓存本质上有什么差别
在这里插入图片描述
与之前基本上是一样的
在这里插入图片描述
在启动之前是没有文件的

先测一下不走缓存的速度如何
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
不稳定,搭建一个wordpress试试
在这里插入图片描述
在27上创建一个数据库
在这里插入图片描述
用test用户就可以了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改权限在这里插入图片描述
在这里插入图片描述
造成这样是因为静态页面转,而动态页面不转
在这里插入图片描述
在这里插入图片描述
静态页面转到200上去了
在这里插入图片描述200上也放一份wordpress
在这里插入图片描述
在这里插入图片描述
现在就可以了
在这里插入图片描述
在这里插入图片描述
访问的时候没有加默认页面,所以目录结构也会暴露
在这里插入图片描述
在这里插入图片描述
先注释掉
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
再次进行修改在这里插入图片描述

还是不行就把文件导出
在这里插入图片描述
还是有问题,先测试一下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在没有启动缓存的情况下
在这里插入图片描述在这里插入图片描述
现在把缓存的功能启用 起来试试
在这里插入图片描述
缓存虽然有了,还需要调用
在这里插入图片描述

在这里插入图片描述
fastcgicache这个名字来自于主配置文件刚才定义里可fastcgi的缓存名称
主配置是定义过了
在这里插入图片描述
在这里插入图片描述
现在缓存磁盘还没有目录
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
快了一倍
在这里插入图片描述
缓存数据也有了
在这里插入图片描述
php是动态程序,如果php动态程序变了缓存怎么办,比如现在把程序改了
在这里插入图片描述
在这里插入图片描述
变了之后再去访问速度如何
在这里插入图片描述在这里插入图片描述
缓存没有改变
在这里插入图片描述
说明看到的数据有可能是旧的数据,
缓存也有过期时长10分钟

在这里插入图片描述
作为php程序一般不回去频繁修改,现在把时间缩短一点为1分钟
在这里插入图片描述
在这里插入图片描述
干脆把里面的数据删除在这里插入图片描述
访问之后还是一样,说明数据放内存里了,时间还没有到,说明还保留这个数据在这里插入图片描述

在这里插入图片描述
upstream才是更有价值的,实现fastcgi也好还是反向代理也好,实际上都是起到调度的效果
(现在是固定得往一台机器上转发,将来想要真正的功能实现lvs调度的)

在这里插入图片描述
在这里插入图片描述
upstream +取的名称
最终调度的服务器
下面调度服务器的地址 rs

server格式一般都是ip地址加端口号在这里插入图片描述
还是把7做反向代理服务器,17作为web服务器
200作为web服务器

在这里插入图片描述
17安装web服务在这里插入图片描述在这里插入图片描述
启动服务在这里插入图片描述
现在来看看前端如何调度
前端调度必须用到upstream,而upstream必须放在哪些模块里,http,所以只能去修改主配置文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
光指定主机还不行,还需要在vhost,配置一下,定义转发的话,怎么转,不单针对php,是要针对整个网站
在这里插入图片描述
现在就起到调度效果
在这里插入图片描述
那现在有没有健康性,宕机一个服务器试试
在这里插入图片描述
现在是轮循的在这里插入图片描述
关掉一台服务器试试
在这里插入图片描述
看来nginx天生就有健康性检查
在这里插入图片描述
万一服务器用的端口号各不相同,在17上把端口修改
在这里插入图片描述
改成8080的端口
在这里插入图片描述
还需要在nginx服务器修改主配置文件,调用 的路径
在这里插入图片描述
在这里插入图片描述
修改端口,重新加载I一下a配置文件
现在就可以了

在这里插入图片描述
因为有其他访问,所以比例不是1:1
在这里插入图片描述
现在已经基本实现了简单地调度,可以实现加权重,和后端服务器的最大连接数
在这里插入图片描述
并发连接数过大,导致服务器宕机,就可以限制最大连接数
在这里插入图片描述
在这里插入图片描述
多长时间链接不了,认为服务器不可用
back up 类似(lvs的sorryserver)
nginx反向代理服务器自己做sorry server

在这里插入图片描述
在这里插入图片描述
重新加载服务
在这里插入图片描述
把后端服务器都关掉
在这里插入图片描述
不往17s上调度了
在这里插入图片描述
另外的服务器也关掉
在这里插入图片描述
nginx服务器修改下地址
在这里插入图片描述
在这里插入图片描述
转发不过去,认为系统本身是个调度器,然后转发到自己那里还往别人那里调度,需要找一个专门的机器来做sorry server
在这里插入图片描述
重新加载配置文件不行,还需要重启服务
在这里插入图片描述
把两台服务器启动起来在这里插入图片描述

现在只往200访问,因为17是sorryserver
在这里插入图片描述
主服务器宕机了才会切换到17
在这里插入图片描述
在这里插入图片描述
改成down,就不往17调度了
在这里插入图片描述
服务器端都是启动状态,再次访问,也是往200上跳转
在这里插入图片描述
因为30.17标注为宕机,这时候,可以更新的时候,在17上更新最新版本,更新好上线之后再取消
在这里插入图片描述
取消,就可以进行正常调度了
在这里插入图片描述
可以实现所谓的灰度发布
在这里插入图片描述
也可以设置权重,这样测试的机器如果有问题,也只是影响一小部分用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
默认的调度算法,是wrr
在这里插入图片描述
在这里插入图片描述
ip_hash就是根据源地址做hash运算,只要是同一个地址来的请求就往同一台机器上调度
第一次没有连接过的用户用权重调度,已经链接过的用hash运算调度

在这里插入图片描述
现在第一次调度给谁,就永远调度给谁
在这里插入图片描述
权重修改一下
在这里插入图片描述
在这里插入图片描述
ip_hash的关系
再源地址做hash算法,一看调度到200就,记录到一个表里
以后就也调度到200上去

在这里插入图片描述
在这里插入图片描述
最少链接调度算法,跟之前的wlc差不多,看哪个后端链接数少就调度
在这里插入图片描述
根据后端服务器链接数调度
在这里插入图片描述
在这里插入图片描述
根据用户请求报文中的算法来调度

发布了243 篇原创文章 · 获赞 6 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_42227818/article/details/90716343
今日推荐