企业架构LNMP学习笔记30

1、upstream 中server的关键字:语法:

upstream中的分发之后的几个关键字:

1)backup 备 其他的没有backup标识的都不可用了,才分发到backup;

2)down 此条配置,不会被分发到。

systemctl restart nginx

可以看到,server03能一直能正常使用,所以就不会再转发给server01。所以web页面一直显示server03这个页面。

如果server03服务器停掉,那么才会给server01 backup服务器。

Session一致性的问题:做集群的时候,这个是一定要关注的一个问题。

访问管理后端页面,登录发现验证码不通过。

分析原因:

1)比如分发到web1服务器,**生成验证码,存储在session中,**默认在服务器本地。

2)再次校验的时候,请求分发到web2服务器了,所以验证码一直校验不过。

session:会话机制。服务器本地。

解决方案思路:

1)生成和验证session都请求同一台服务器;ip_hash的配置方法。

2)共享session nfs mysql 内存缓存软件(memcached redis)

把session共享。

两个会话机制:Cookie是存浏览器的,容易被篡改的。用户登录和完成后的值,存在服务器的session中。

Nginx的负载均衡算法:

Nginx官方默认提供了3种负载均衡算法:

1)Round-Robin RR轮询(默认)一次一个的来(实际实验可能会有间隔。)

2)weight(权重)权重高多分发一些,服务器硬件更好的设置权重更高一些。

3)ip_hash 同一个IP,所有的访问都分发到同一个web服务器。

Tip:

第三方模块实现的调度算法 需要编译安装第三方模块

④fair 根据后端服务器的繁忙程度 将请求发到非繁忙的后端服务器

⑤url_hash 如果客户端访问的url是同一个,将转发到同一台后端服务器

验证一:验证加权轮询算法:

示例配置:

8次中,server01分发5次,server03分发3次。

验证二:ip_hash ip一致性的问题:

ip_hash:不够平均了,这个方式有争议。

相关推荐
深思慎考3 小时前
微服务即时通讯系统(服务端)——用户子服务实现逻辑全解析(4)
linux·c++·微服务·云原生·架构·通讯系统·大学生项目
Jooou5 小时前
Spring事务实现原理深度解析:从源码到架构全面剖析
java·spring·架构·事务
記億揺晃着的那天5 小时前
六大 API 架构风格
架构·软件工程·graphql·rest api
serendipity_hky5 小时前
【微服务 - easy视频 | day02】全局过滤器+局部过滤器+全局拦截器
spring cloud·微服务·云原生·架构
冰_河7 小时前
《Nginx核心技术》第11章:实现MySQL数据库的负载均衡
后端·nginx·架构
喵叔哟8 小时前
64.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--预算报表
微服务·架构·.net
杨充9 小时前
OkHttp网络框架设计
架构
喝拿铁写前端9 小时前
从面条代码到抽象能力:一个小表单场景里的前端成长四阶段
前端·设计模式·架构
MobotStone9 小时前
边际成本趋近于零:如何让AI智能体"说得清、讲得明"
人工智能·架构
summer_west_fish9 小时前
Distributed Architecture: 分布式服务架构演进
架构