利用nginx实现负载均衡详解程序员
我这里是使用docker安装的。安装流程可参照 dockerfile
这里安装了两个tomcat,端口分别是42000和42001。第二个tomcat的首页随便加了些代码区分
2、nginx配置#这里的域名要和下面proxy_pass的一样 upstream fengzp.com { server 192.168.99.100:42000 weight=1; server 192.168.99.100:42001 weight=2; server { listen 80; server_name 192.168.99.100; location / { proxy_pass http://fengzp.com; proxy_redirect default; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }
刷新页面发现页面会发生变化,证明负载配置成功。因为我配的权重第二个是第一个的两倍,所以第二个出现的概率会是第一个的两倍。
4、后续问题如果关了tomcat1,再多次刷新页面,接下来出现的就会都是tomcat2的页面,但是时而快时而慢。这其中原因是当如果nginx将请求转发到tomcat2时,服务器会马上跳转成功,但是如果是转到tomcat1,因为tomcat1已经关闭了,所以会出现一段等待响应过程的过程,要等它失败后才会转到tomcat2。
而这个等待响应的时间我们是可以配置的。
这个时间由以下3个参数控制:
proxy_connect_timeout:与服务器连接的超时时间,默认60s
fail_timeout:当该时间内服务器没响应,则认为服务器失效,默认10s
max_fails:允许连接失败次数,默认为1
等待时间 = proxy_connect_timeout + fail_timeout * max_fails
如果我这样配置的话,只需等待6秒就可以了。
5、负载均衡策略1、轮询
这种是默认的策略,把每个请求按顺序逐一分配到不同的server,如果server挂掉,能自动剔除。
upstream fengzp.com { server 192.168.99.100:42000; server 192.168.99.100:42001; }
2、最少连接
把请求分配到连接数最少的server
upstream fengzp.com { least_conn; server 192.168.99.100:42000; server 192.168.99.100:42001; }
3、权重
使用weight来指定server访问比率,weight默认是1。以下配置会是server2访问的比例是server1的两倍。
upstream fengzp.com { server 192.168.99.100:42000 weight=1; server 192.168.99.100:42001 weight=2; }
4、ip_hash
每个请求会按照访问ip的hash值分配,这样同一客户端连续的Web请求都会被分发到同一server进行处理,可以解决session的问题。如果server挂掉,能自动剔除。
upstream fengzp.com { ip_hash; server 192.168.99.100:42000; server 192.168.99.100:42001; }
ip_hash可以和weight结合使用。
相关文章
- Nginx教程_nginx docker
- Nginx负载均衡
- Nginx-代理apache负载均衡
- 万字解读云原生时代,如何从 0 到 1 构建 K8s 容器平台的 LB(Nginx)负载均衡体系
- 负载均衡浅谈
- Nginx的负载均衡配置教程
- linux负载均衡总结性说明(四层负载/七层负载)详解程序员
- Nginx的nginx.conf配置文件中文注释说明详解程序员
- nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录详解程序员
- nginx 反向代理和负载均衡详解程序员
- 动态负载均衡(Nginx+Consul+UpSync)环境搭建详解程序员
- 动态负载均衡(Nginx+Consul+UpSync)详解程序员
- nginx + tomcat配置负载均衡详解程序员
- 大型网站架构系列:负载均衡详解架构师
- Linux下Nginx安装使用详细指南(linux安装nginx详细教程)
- 缓存Linux实现Nginx缓存的快速删除(linux删除nginx)
- Linux删除Nginx:快速安全的方式(linux删除nginx)
- Linux下如何安全删除Nginx(linux删除nginx)
- Linux安装Nginx:一步一步指南(linux下载nginx)
- HAProxy-实现四层负载
- Linux VPN负载均衡与限速(linuxvpn限速)
- nginx 负载均衡搭建
- 使用Linux和Nginx实现高效负载均衡的解决方案(linuxnginx负载均衡)
- 基于Linux的负载告警及监控机制(linux 负载告警监控)
- 借助Redis和Nginx进行更有效的负载均衡(redis配合nginx)
- 破解Redis性能,实现负载优化(redis负载优化)
- 为高负载网络优化Nginx和Node.js的方法
- Nginx的nginx.conf配置文件中文注释说明