一、什么是负载均衡
负载平衡也称负载共享,是指对系统中的负载情况进行动态调整,以尽量消除或减少系统中各节点负载不均衡的现象。具体实现方法是将过载节点上的任务转移到其 他轻载节点上,尽可能实现系统各节点的负载平衡,从而提高系统的吞吐量。负载共享有利于统筹管理分布式系统中的各种资源,便于利用共享信息及其服务机制扩 大系统的处理能力。
二、负载均衡的原理图
三、负载均衡的配置
(
http://blog.csdn.net/cym_summer/article/details/52131873
)
这个是之前整理过的文档,可以帮助你很快的上手!
四、负载均衡拓展
1.如果负载均衡已经有www.a.com的了,我想在配置www.b.com是可以的,就是把域名改一下就可以了
2.如果把负载均衡的服务器的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的效率
动静分离
location ~ .*\.(php|jsp|cgi)?$
{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://115.28.214.200; #从服务器的地址
}
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://www.whao.site; #pass这里写从服务器的地址
# root /home/wwwroot/default;
expires 3d;
}