负载均衡之 nginx

时间:2023-03-09 19:55:17
负载均衡之 nginx

什么是负载均衡

负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。

在使用nginx负载均衡前,需要先了解一下 nginx的反向代理 请查看并理解
http://www.php20.com/forum.php?mod=viewthread&tid=37&extra=

理解完反向代理,基本就可以理解负载均衡了。 

还是拿baidu做测试  原来的代码请修改成

[PHP] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
upstream test1{
       server www.php20.com;
       server www.fangsongyixia.com;
}
server{
        listen 80;
        server_name [url]www.baidu.com[/url];
        location / {
#转发头中包含ip和代理ip
          proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#不使用缓存
       proxy_buffering off;
         proxy_pass http://test1;
        }
}

这个时候访问www.baidu.com的时候会发现,会在论坛与笑话站之间来回切换。 

除了自动分配服务器外。可以指定权重

[PHP] 纯文本查看 复制代码
1
2
3
4
upstream test1{
       server www.php20.com  weight=5;
       server www.fangsongyixia.com  weight=1;
}

还可以通过ip来分配。 请查看原文档 什么是负载均衡

负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。

在使用nginx负载均衡前,需要先了解一下 nginx的反向代理 请查看并理解
http://www.php20.com/forum.php?mod=viewthread&tid=37&extra=

理解完反向代理,基本就可以理解负载均衡了。 

还是拿baidu做测试  原来的代码请修改成

[PHP] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
upstream test1{
       server [url]www.php20.com[/url];
       server [url]www.fangsongyixia.com[/url];
}
server{
        listen 80;
        server_name [url]www.baidu.com[/url];
        location / {
#转发头中包含ip和代理ip
          proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#不使用缓存
       proxy_buffering off;
         proxy_pass http://test1;
        }
}

这个时候访问www.baidu.com的时候会发现,会在论坛与笑话站之间来回切换。 

除了自动分配服务器外。可以指定权重

[PHP] 纯文本查看 复制代码
1
2
3
4
upstream test1{
       server [url]www.php20.com[/url]  weight=5;
       server [url]www.fangsongyixia.com[/url]  weight=1;
}

还可以通过ip来分配。 请查看原文档 
http://www.nginx.cn/doc/standard/httpupstream.html