负载均衡
Posted Love满天星
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负载均衡相关的知识,希望对你有一定的参考价值。
一、什么是负载均衡
负载平衡也称负载共享,是指对系统中的负载情况进行动态调整,以尽量消除或减少系统中各节点负载不均衡的现象。具体实现方法是将过载节点上的任务转移到其 他轻载节点上,尽可能实现系统各节点的负载平衡,从而提高系统的吞吐量。负载共享有利于统筹管理分布式系统中的各种资源,便于利用共享信息及其服务机制扩 大系统的处理能力。
二、 负载均衡的原理图
用户访问www.a.com通过外网访问,经过负载均衡服务器通过内网分配到每个服务器,来减轻服务器的压力。
三、 负载均衡的配置
在nginx.conf文件中在http段下面添加一下代码:
#upstream 可以设定后端服务器,指定的方式可以是 IP 地址与端口、域名、socket。
upstream www.a.com {
#设置要分配的服务器的ip
server 192.168.1.*:80;
server 192.168.1.**:80;
server 192.168.1.***:80;
}
server {
#端口
listen 80;
#服务器的名字(浏览器的输入的域名)
server_name www.a.com;
location / {
proxy_pass http://www.a.com; #此域名与upstream 必须一致
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
在其他的nginx服务器中的nginx.conf中添加一下代码(如果不添加,默认访问的根目录)
server{
listen 80;#端口
server_name www.a.com; #域名
index index.html;
root /data0/htdocs/www; #访问的文件夹
}
四、 负载均衡拓展
- 如果负载均衡已经有www.a.com的了,我想在配置www.b.com是可以的,就是把域名改一下就可以了
- 如果把负载均衡的服务器的ip配置到upstream 中会出现两种情况
(1). 负载均衡服务器转发到了其它IP上,其它IP服务器正常处理;
(2). 负载均衡服务器转发到了自己IP上,然后又进到负载均衡服务器分配IP那里,假如一直分配到本机,则会造成一个死循环。这个问题怎么的解决呢?
因为80端口已经用来监听负载均衡的处理,那么本服务器上就不能再使用80端口来处理www.a.com的访问请求,需要用一个新的。于是我们把主服务器的nginx.conf加入以下一段代码:
server{
listen 8080;
server_name a.com;
index index.html;
root /data0/htdocs/www;
}
重启nginx,如果能够正常访问那么在upstream中改一下端口号
upstream www.a.com {
server 192.168.5.*:80;
server 192.168.5.**:80;
server 127.0.0.1:8080;
}
这样第二的问题就解决了。
3. 负载均衡不仅Nginx可以做,Apache也可以,但是Nginx的效率要高于Apache的效率
以上是关于负载均衡的主要内容,如果未能解决你的问题,请参考以下文章