刚才在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差不多,看哪个后端链接数少就调度
根据后端服务器链接数调度
根据用户请求报文中的算法来调度