负载均衡:用于管理后端web集群服务器,实现web集群的调度功能。
PS:集群的作用 1)高性能 2)性价比高 3)可伸缩型(容错)
4)高可用性
负载均衡集群软件
1)nginx反向代理负载均衡 采用7层模型,依据网站域名ip。
2)LVS 4层模型,依据访问的端口,适用于大型公司。
3)haproxy 采用4层或者7层模型。
nginx反向代理负载均衡的部署
1,部署nginx服务。(前面已部署)
2,部署web集群服务器
这里要保证每一台web服务器的nginx配置文件相同
采用scp命令:scp -rp /application/nginx root@10.0.0.100:/application/ (ps:将一台主机的nginx文件拷贝到目标主机上,覆盖nginx,所以这里不是/application/nginx)
然后将主机名和网站域名对应起来,采用for循环命令:for name in www bog;do echo "$(hostname) n a m e . y u s h e n g . o r g " > / a p p l i c a t i o n / h t m l / name.yusheng.org " >/application/html/ name.yusheng.org">/application/html/name/index.html;done
3,在负载均衡服务器上测试访问web节点服务器
curl -H host:www.yusheng.org 10.0.0.100/index.html
4,部署nginx反向代理负载均衡(在负载均衡服务器中)
cd /application/nginx/conf
egrep -v “^$|#” nginx.conf.default >nginx.conf
vim nginx.conf
这里需要掌握两个模块
1)upstream
upstream wang {
server 10.0.0.11:80;
server 10.0.0.31:80;
server 10.0.0.51:80;
}
- proxy_pass
location / {
proxy_pass http://wang;
}
5,进行测试访问
在浏览器上访问 www.yusheng.org
用ctrl切换不同的主机
PS:这里必须要有一台虚拟主机10.0.0.100,来配置模块文件。其它几个主机架构web集群,从而实现负载均衡。
核心模块深入研究
1,定义权重(访问请求的比重)
upstream wang {
server 10.0.0.11:80 weight=2;
server 10.0.0.31:80 weight=1;
server 10.0.0.51:80 weight=1;
}
2,定义后端访问失败次数(max_fails表示错误次数的最大值,否则将访问请求发送给其它主机)
server 10.0.0.11:80 max_fails=2;
server 10.0.0.31:80 max_fails=1;
server 10.0.0.51:80 max_fails=1;
3,定义后端访问失败后,重试的间隔。
server 10.0.0.11:80 max_fails=2 fail_timeout=5s;
server 10.0.0.31:80 max_fails=1 fail_timeout=5s;
server 10.0.0.51:80 max_fails=1 fail_timeout=5s;
4,定义后端web的热备节点(backup)其它web服务端故障,才会使用热备。
server 10.0.0.11:80 ;
server 10.0.0.31:80 ;
server 10.0.0.51:80 backup;
此外在proxy_pass模块下可以有以下内容
location / {
proxy_pass http://wang;
proxy_set_header host $host; (请求头,用于显示不同虚拟主机的网页)
proxy_set_header X-Forwarded-For $remote_addr; (用于显示虚拟主机的源ip地址)
}
**企业实战案例
**a,动静态分离
1,配置如下图所示
2,创建web集群环境
比如在web1上 mkdir /application/nginx/html/www/upload
echo “upload web1” > ./upload/txt.html
在其它web上同理
3,访问浏览器
www.yusheng.org/upload/txt.html
www.yusheng.org/static/txt.html
www.yusheng.org/txt.html
**案例:实现以下需求
a,在iphone上分配静态staticweb集群;
b,在谷歌浏览器上分配upload集群;
c,在其它pc端都分配default集群。
1,配置环境如下图
2,创建测试环境
echo “chrome web1”>./html/www/test.html(web1上)
echo “mobile web2”>./html/www/test.html(web2上)
echo “default web3”>./html/www/ttest.html(web3)
3,访问测试
备:在谷歌浏览器上按F12,可以模拟手机浏览器模式进行访问。
在linux命令行测试,curl -A “chrome” -H host:www.yusheng.org 10.0.0.100/test.html
(ps:在负载均衡服务器上)