nginx的基础知识二之负载均衡

为了解决服务器负载问题,除了采取搭建多台服务器设备来解决外,还可以采用nginx来处理负载均衡。
【nginx的基础知识二之负载均衡】1.轮询 根据nginx配置文件中的顺序,依次把客户端的web请求分发到不同的后端服务器.如果后端服务器down掉,能自动剔除。
首先在/etc/nginx/conf.d里,添加如下代码:
http{upstream sampleapp{ server 192.168.160.13:8989; server 192.168.139.11:7878}

之后在/etc/nginx/site-available/blog里添加
server{ listen 80; .. location / { proxy_pass http://sampleapp; } }

备注:这里的blog文件是我复制了一份原来的default文件,用于配置反向代理的。
2.最少连接
http{ upstream sampleapp{ least_conn; server 192.168.160.22:8989; server 192.169.23.33:2323; }

server { listen 80; .. location / { proxy_pass http://sampleapp; } }

3.ip地址哈希 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
http{ upstream sampleapp{ ip_hash; #判断是否同一个session,同一个session的话,访问的永远是一个 server 192.168.160.33:8989; server 192.145.133.23:9999; }

server{ listen 80; .. location / { proxy_pass http://sampleapp } }

4.基于权重的负载均衡
http{ upstream sampleapp{ server 192.168.160.34:8989 weight=2; #表示2/3的概率访问这个 server 192.168.160.23:9999; server 192.168.160.23:9888 down; //down 表示单前的server暂时不参与负载 server 192.168.160.23:7777 backup//backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。 }

server { listen 99; .. location / { proxy_pass http://sample } }

    推荐阅读