nginx负载均衡原理实现

负载均衡原理及实现

原理:一台服务器来做请求处理,把访问到的请求分发到其他几台服务器上(其他几台服务器代码同步问题可以用rsync来实现),达到服务器减压的效果。(域名只需要指向主服务器IP就可以了)

实现:主要的实现在于主服务器的请求处理上,只要把请求分发了就可以了。

修改主服务器nginx配置文件  (找不到配置文件的可以搜索 find / -name nginx.conf)

在http中添加代码:

upstream www.nice513.com{

    server 127.0.0.1:80;    #这里是要参与负载均衡的地址1

    server 127.0.0.2:80;   #这里是要参与负载均衡的地址2

}

server中修改代码:

location / {
        proxy_pass http://www.nice513.com;   //添加代码 
        #index  index.html index.htm index.php l.php;//默认代码注释
        #autoindex  off;//默认代码注释
}

然后重启nginx  


这时候我们访问我们主服务器nginx所绑定的域名,每次刷新ip都在变。简单的负载均衡测试就完成了。


127.0.0.1 与127.0.0.2服务器中nginx配置:

  server {
        listen       80;
        server_name   www.nice513.com;#我的域名是www.nice513.com



有时候我们的服务器配置大小不一样,所以给它们的访问量也不一样,如下设置:

upstream  www.nice513.com{

    server 127.0.0.1:80 weight=5; ;  #权重为5

    server 127.0.0.2:80 weight=1; ;  #权重为1
}

修改配置后我们多次刷新后 是不是发现权重为5的ip出现的次数变多了,如果不设置权重,表示两者均衡


关于seesion问题

upstream  www.nice513.com{

    ip_hash;
    
    server 127.0.0.1:80 weight=5; ;  #权重为5

    server 127.0.0.2:80 weight=1; ;  #权重为1
}

通过ip_hash来解决seesion问题。


下边再来说下高可用


高可用:为了避免服务器的奔溃后无法使用,需要建立一个备用机器。


配置如下:

upstream  www.nice513.com{

    ip_hash;
    
    server 127.0.0.1:80;  #主服务器
 
    server 127.0.0.2:80 backup;   #备用服务器
}

一个主服务器,一个备用服务器,在主服务器挂掉后(访问不到的时候),自动请求到备用服务器,这样就实现了高可用


喜欢(0)

评论 抢沙发

表情