1、概念:

正向代理:客户端明确被访问服务器
反向代理:客户端不清楚被访问服务器,只清楚代理服务器
负载均衡

2、nginx负载均衡的实现

2.1、什么是http upstream 模块

upstream mypro {
}
server{
location /{
proxy_pass hhtp://mypro;
}
}
主要实现轮询算法

ip_hash 指令

将通一个用户引入同一个服务器
upstream mypro{
ip_hash;//同一个ip用户,会一直访问第一次进入的服务器。
server www.baiud.com;
server www.jd.com;
}
权重和ip_hash是冲突的,不能同事使用
2.2、server 指令(服务器权重)
upstream mypro{
server www.baiud.com weight=2;//被访问权重是2/3,
server www.jd.com;//被访问权重是1/3
}
其它负载均衡实现(硬件实现,软件实现:服务器软件,系统软件等)
2.3 backup;
upstream mypro{
server www.baiud.com weight=2;//被访问权重是2/3, 值越大,负载越大
server www.jd.com;//被访问权重是1/3
server www.taobao.com backup; //备份机,只有非备份机都挂掉了才启用
}
2.4 down;
upstream mypro{
server www.baiud.com weight=2;//被访问权重是2/3,
server www.jd.com;//被访问权重是1/3
server www.taobao.com down; //停机标志,不会被访问
}
整体配置:
负载均衡策略:
1.none(轮询,权重油weight决定)
2.ip_hash 根据客户端第一次分配的机器,以后都是这台机器
//下面是第三方提供的
3.fair 动态的根据后端服务器的负载能力进行选择
4.url_hash 根据客户端url信息分配服务器(适合访问一些图片,静态页面等)


3、nginx+tomcat 负载均衡配置
反向代理:

负载均衡

3.1负载均衡配置实现

2.5、下载第三方模块
如果nginx没有安装
1.
如果nginx安装后:
2.执行make 然后在nginx的安装目录里的objs目录里nginx(添加了第三方的编译文件),
3.关闭nginx
4.用objs里的nginx 替换到sbin/里的nginx文件
3.2 负载均衡时session 的处理策略
1.将用户锁定在一个服务器上 优点:简单 缺点:缺乏容错性
2.session 复制 优点:会及时同步session信息 缺点:网络压力
实现方式: 在tomcat里的server-session-replication.xml 开启session复制

然后在应用代码中。web.xml中设置,应用可以支持session复制

测试或者验证时,可以创建一个session监听器实现 httpSessionAttributeListener
3.session共享,将服务器里的session放在同一个地方
1.黏性session
不同的tomcat指定一个memcached,tomcat 主存储

2.非黏性session
tomcat 不存储session

实现方式:非黏性配置

3.3 集群环境中应用代码应注意的问题
1.实体类序列化支持 一般是session 实体类 根据版本号
2.获取用户ip地址的方式,在代理

在代码中获取ip里的head里的上述配置选项
其它头配置信息

动静分离结构的预规划
1.静态资源(单独服务器)
本文深入探讨Nginx作为反向代理服务器在负载均衡中的应用,包括轮询、权重、ip_hash等策略,以及如何在集群环境中处理session,特别关注了与Tomcat的集成配置。
1429

被折叠的 条评论
为什么被折叠?



