Nginx的反向代理负载均衡实战

本文详细介绍了Nginx的反向代理和负载均衡应用,包括X、Y、Z轴扩展概念,负载均衡模块如upstream、ip_hash、least_conn等策略,以及上游服务器的keepalive模块和Keepalived实现高可用负载均衡。同时,讨论了反向代理模块的proxy_pass和缓存功能,包括浏览器缓存和Nginx缓存的优缺点及其配置实践。
摘要由CSDN通过智能技术生成

1.反向代理应用

负载均衡&反向代理

在这里插入图片描述

 

 nginx在AKF扩展立方体的应用:https://www.jianshu.com/p/d08d0c14810f

X轴代表无差别的克隆服务和数据库。不同的服务器可以通过不同调度算法来分发请求
Y轴基于URL对业务做拆分,如图片文本URL分离
Z轴通常基于请求或客户的信息进行分割。如根据用户IP或其他信息映射到某个特定的服务或集群

1.X轴扩展

优点:成本最低,实施简单;

缺点:受指令集多少和数据集大小的约束。当单个产品或应用过大时,服务响应变慢,无法通过X轴的水平扩展提高速度;

场景:发展初期,业务复杂度低,需要增加系统容量。

2.Y轴扩展

优点:可以解决指令集和数据集的约束,解决代码复杂度问题,可以实现隔离故障,可以提高响应时间,可以使团队聚焦更利于团队成长;

缺点:成本相对较高;

场景:业务复杂,数据量大,代码耦合度高,团队规模大。

3.Z轴扩展

优点:能解决数据集的约束,降低故障风险,实现渐进交付,可以带来最大的扩展性。

缺点:成本最昂贵,且不一定能解决指令集的问题;

场景:用户指数级快速增长。

多种协议的反向代理

在这里插入图片描述

反向代理与缓存

2.负载均衡模块

upstream

模块名称 http_upstream_module(默认)

模块功能 定义上游服务器集群,然后可以被各种协议引用(proxy_pass,fastcgi_pass等)

 
 

1.模块指令

upstream 定义负载均衡集群

server 定义集群中的上游服务器地址

在这里插入图片描述
参数

weight 服务器权重值,默认是1
max_conns server的最大并发连接数,用于单worker进程,默认0无限制
max_fails 在fail_timeout时间段内,最大的失败次数。当达到最大失败时,会在fail_timeout秒内这台server不允许被选择
fail_timeout 单位为秒,默认值为10秒;指定一段时间内,最大的失败次数max_fails;到达max_fails后,该server不能访问的时间

2.负载均衡算法

Round-Robin 轮流处理分发用户请求 server IP;默认weight值为1

加权Round-Robin 根据服务器性能分配权重,通过weight来定义权重值

算法配置 server xxx weigh=X …;

算法实例

server {
	listen 8001;
	default_type text/plain;
	return 200 '8001 server response.\n';
}

server {
	listen 8002;
	default_type text/plain;
	return 200 '8002 server response.\n';
}

upstream server

upstream rrtest {
        server 192.168.217.155:8001 weight=2 max_conns=2 max_fails=2 fail_timeout=5;
        server 192.168.217.155:8002;
        keepalive 32;

}

server {
        listen 80;
        server_name rrtest.pl.com;

        location / {
                proxy_pass http://rrtest;
                proxy_http_version 1.1;
                proxy_set_header Connection "";
        }
}

测试
tcpdump -i ens192 port 8001 -v 查看http长连接是否生效

[root@www ~]# curl rrtest.pl.com
8001 server response.
[root@www ~]# curl rrtest.pl.com
8002 server response.
[root@www ~]# curl rrtest.pl.com
8001 server response.
[root@www ~]# curl rrtest.pl.com
8001 server response.
[root@www ~]# curl rrtest.pl.com
8002 server response.

查看头

[root@www ~]# curl -I rrtest.pl.com
HTTP/1.1 200 OK
Serve
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值