Nginx负载均衡简易配置
2024-09-08 06:48:42
多台Web服务器水平扩展,进行负载均衡对外服务,是一种很常见的方案。
常用方法用DNS轮询,LVS。
DNS轮询虽然有配置简单的有点,但无法实现健康检查,DNS修改需要较长时间失效,对于无域名的内部服务需要手动修改客户端hosts。
LVS实现功能强大,可配置项多,能实现会话保持,但消耗机器数多,不适合中型和小型项目。
其实Nginx也能实现负载均衡,而且配置简单,通过ip_hash也能实现会话保持。
配置方法:
1.轮询:
此种配置最为简单也最为常用,请求将会依次交给不同的服务器处理,但无法实现会话保持。
upstream 配置名称 {
server 192.168.1.1:; # 服务器A
server 192.168.1.2:; # 服务器B
server 192.168.1.3:; # 服务器C
}
2.权重
此种配置适用于多台服务器配置有高低之分,需要根据实际配置情况分配请求,此方法依然无法实现会话保持。
#weight越大,处理请求的次数则越多,实际值=weight/sum(weight) * 总请求数
upstream 配置名称 {
server 192.168.1.1: weight=; # 服务器A
server 192.168.1.2: weight=; # 服务器B
server 192.168.1.3: weight=; # 服务器C
}
3.ip_hash
此配置根据ip的hash值决定处理请求的服务器,所以同一ip多个请求将交给同一服务器处理,这种方法可以解决会话保持的问题。
upstream 配置名称 {
ip_hash; # 使用ip_hash方法
server 192.168.1.1:; # 服务器A
server 192.168.1.2:; # 服务器B
server 192.168.1.3:; # 服务器C
}
4.其他方法
籍由第三方扩展,Nginx还可以实现多种负载均衡算法,例如:url_hash、fair等等,由于实际使用较少,在此不一一赘述。
5.应用负载均衡
server {
listen ;
location / {
root html;
proxy_pass http://配置名称;
index index.html index.htm;
}
}
注意:请不要在upstream中设置的服务器上添加proxy_pass,否则会出现死循环,导致请求失败。
6.更多的upstream配置选项
#weight 默认为1,值越大权重越大,处理请求次数越多
#down 该服务器不会被转发请求
#backup 该服务器用于备份,只有其他服务器都失效时才使用
#max_fails 允许的最大失败次数
#fail_timeout 达到最大失败次数后,暂停处理请求的时间,单位:秒
最新文章
- redis DB操作
- hdu2896 病毒侵袭 ac自动机
- CSS定位之position详解(转载)
- Windows安装 ANT
- web前端性能概述
- EasyUI 自定义DataGrid分页
- 网络延迟查看器 Network latency view 1.4
- 解决VS2010使用comboBox死机问题
- struts2 JS获取上传文件的绝对路径,兼容IE和FF
- AOP技术基础
- 【桌面虚拟化】之三 Persistent vs NonP
- Working——流程关系状态表
- iPhone APP 扫码下载
- mysql性能调优与架构设计(一)商业需求与系统架构对性能的影响
- Android开发手册 (Android的手工教程MtAndroid开发手册)
- [转]学好Mac常用命令,助力iOS开发
- 织梦DEDE文章列表前面自动加递增数字标签
- #Java学习之路——基础阶段(第二篇)
- spark streaming的容错:防止数据丢失
- payload