美文网首页
nginx的基础知识二之负载均衡

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

作者: 海里的沙丁鱼 | 来源:发表于2018-01-15 18:13 被阅读0次

    为了解决服务器负载问题,除了采取搭建多台服务器设备来解决外,还可以采用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
            }
        }
    

    相关文章

      网友评论

          本文标题:nginx的基础知识二之负载均衡

          本文链接:https://www.haomeiwen.com/subject/xwpdoxtx.html