nginx负载模式(nginx负载策略如何选择)
nginx负载策略如何选择
我看别人回复的都不太实用,我来回复你这个问题,
负载均衡有如下几个选择
一、DNS 最前端的负载均衡,可以根据地域,网路配置域名转向不同的IP
二、F5,专业的网络负载均衡硬件设备,可配置四层,七层负载均衡,根据IP,session等多种均衡策略,可配置ssl证书等,就是死贵
三:ELB/SLB 公有云提供的负载均衡服务,不同的提供商,不同的名称,大都叫XLB,功能类似F5,便宜,不用自己管理。
四:LVS linux内核自带的负载均衡能力,四层负载均衡,通过廉价的设备集群组成强大的负载均衡能力
五、nginx 著名的开源软件,常用于http反向代理,七层负载均衡,配置灵活,附加功能多。
nginx负载均衡模式
Nginx负载均衡的原理是根据请求的负载大小及服务器的可用性,将客户端请求分发到多个服务器上进行处理,以提高资源利用率和系统的可用性。具体来说,Nginx作为反向代理服务器,通过配置upstream模块进行负载均衡,根据配置的算法(如轮询、权重、IP hash等)将请求分发到指定的服务器上。同时,Nginx还可以实现基于健康检查机制的动态负载均衡,通过定期检查服务器的可用性,将请求分发到可用的服务器上,提高系统的可用性。此外,Nginx还支持对HTTP请求进行流量控制和限速,以及基于HTTP协议的会话保持等功能,为高负载、高并发情况下的服务提供高效、稳定的解决方案。
nginx负载均衡的三种方式
负载均衡是将请求根据后端服务器的实际繁忙程度,发送到比较空闲的一台服务器上 所以每一台后端服务器必须完全一样,拥有相同的代码
nginx 负载
nginx一般会用作负载均衡,spring cloud有zuul做网关,功能也很强大,根据项目特点选择,一般是不需要的
nginx负载方式
nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。比如在内网有一个mysql服务,想暴露到公网上去使用,就可以通过nginx代理的方式通过nginx来进行内网mysql的访问。
实验环境
nginx1.12.1 : 192.168.1.19
mysql : 192.168.1.20:3306
1:编译或者升级nginx至版本1.9.0以上,编译过程中需带上--with-stream。
# ./configure --prefix=/opt/apps/nginx --with-stream
# make && make install
2:配置stream,定义代理192.168.1.20的3306端口映射为端口2333。
# vi /opt/apps/nginx/conf/nginx.conf
……
……
events {
use epoll;
worker_connections 65535;
}
#stream配置
stream {
server {
listen 2333;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass 192.168.1.20:3306;
}
}
http {
……
……
}
3:开启nginx,验证代理是否生效。
image.png
可以看到我们现在可以通过nginx代理的端口访问到内网的mysql服务了。这也直接避免了mysql直接暴露到公网,增加些许的安全。当然,利用stream也可以实现后端服务的负载均衡。
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.