lnmp 实现负载均衡

反向代理后台如果有多台服务器,则自然可以形成负载均衡

但proxy_pass只能如何指向多台服务器呢?

把多台服务器用nginx的属性upstream绑定在一起,并起个组名

然后用proxy_pass指向该组名即可实现负载均衡

开始:
一、在nginx的配置文件中新增两个虚拟主机,地址分别指向81和82端口,以下是示例:
在这里插入图片描述
二、用upstream把两台虚拟主机的地址绑在一起
在这里插入图片描述
图中imgserver为组名,upstream下的各服务器的配置项可到nginx.org官网查看upstream模块的使用方法和参数。上图参数中
weight 表示访问的权重,数值越大,访问越频繁.
max_fails 表示最大的访问次数,超过就代表链接彻底失败
fail_timeout 表示访问的超时时间是多少秒

三、用proxy_pass指定组名
在这里插入图片描述
以上配置的意思是(红色框框内),凡是碰到图片文件就自动将请求转发到imgserver内容的两台主机去处理

默认的负载均衡算法很简单,就是针对后端服务器的顺序逐个请求

当然也有其它的均衡算法,例如一致性哈希,需要安装第三方模块,如 ngx_http_upstream_consistent_hash

上面就是负载均衡的配置方法

配置过程中涉及到的知识点:
一、配置好两台虚拟主机后,如何生成对应的日志,如下图
在这里插入图片描述
二、负载均衡中会出现这种情况
1、在客户端(假设地址为192.168.101.100)向服务器(假设地址为192.168.101.200)请求图片文件的时候,由于ngin已经配置了负载均衡,因此nginx会将图片文件转发给配置的两台负载均衡服务器,此时这两台服务器的网址就会显示为后端服务器的IP,而不是真正的客户端IP。

那么,如何来解决这种问题呢?看下图
在这里插入图片描述
一般约定成熟的规定是,将客户端的头信息放在一个变量里面,这个变量就是X-Forwarded-For

扫描二维码关注公众号,回复: 9793472 查看本文章

END
以上就是负载均衡配置的全部内容

发布了91 篇原创文章 · 获赞 5 · 访问量 5457

猜你喜欢

转载自blog.csdn.net/weixin_43947156/article/details/102613503