Nginx负载均衡

Nginx负载均衡有4种配置方案
1、轮询
轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的web请求分发到不同的后端服务器上
2、最少连接least_conn
web请求会被转发到连接数最少的服务器上
3、IP地址哈希ip_hash
前述的两种负载均衡方案中,同一客户端连接的web请求可能会被分发到不同的后端服务器进行处理,因此如果涉及到会话session,那么会话会比较复杂。常见的是基于数据库的会话持久化。要克服上面的难题,可以使用基于IP地址哈希的负载均衡方案。这样的话,同一客户端连接的web请求都会被分发到同一个服务器进行处理
4、基于权重weight
基于权重的负载均衡即weight load balancing,这种方式下,我们可以配置Nginx把请求更多的分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器上

一、负载均衡配置
1、配置基于Round Robin轮询的负载均衡
需要注意一下几点:
(1)缺省配置就是轮询策略,即Nginx默认为轮询方式
(2)Nginx负载均衡支持http和https协议,只需要修改proxy_pass后协议即可
(3)Nginx支持fastCGI,uwsgi,SCGL,memcached的负载均衡,只需将proxy_pass改为fastCGI_pass,uwsgi_pass即可
(4)此策略适合服务器配置相当,无状态且短平快的服务使用

配置:
http {
upstream netease.com {
server 127.0.0.1:8881;
server 127.0.0.1:8882;
server 127.0.0.1:8883;
}
server {
listen 80;
server_name:netease.com;

location/{
proxy_pass http://netease.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
2、配置基于ip_hash的负载均衡
需要注意一下几点
(1)IP哈希负载均衡使用ip_hash指令定义;
(2)Nginx使用请求客户端的IP地址进行哈希计算,确保使用同一个服务器响应请求;
(3)此策略适合有状态服务,比如session

配置:
http {
upstream netease.com {
ip_hash;
server 127.0.0.1:8881;
server 127.0.0.1:8882;
server 127.0.0.1:8883;
}
server {
listen 80;
server_name:netease.com;

location/{
proxy_pass http://netease.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
3、配置基于least_conn的负载均衡
需要注意一下几点:
(1)最少链接负载均衡通过least_conn指令定义;
(2)此负载均衡策略适合请求处理时间长短不一造成服务器过载的情况;
http {
upstream netease.com {
least_conn;
server 127.0.0.1:8881;
server 127.0.0.1:8882;
server 127.0.0.1:8883;
}
server {
listen 80;
server_name:netease.com;

location/{
proxy_pass http://netease.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值