1、目前常见的Web集群调度器分为软件和硬件;
2、软件通常使用开源的LVS、Haproxy、Nginx;
3、硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等.
1、LVS在企业应用中抗负载能力很强,但存在不足
2、Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理的软件
Haproxy支持多种调度算法,最常用的有三种
理解举例
理解举例
理解举例
● global:全局配置
● defaults:默认配置
● listen:应用组件配置
●log127.0.0.1 lcal0:配置日志记录,local0为日志设备,默认存放到系统日志
●log127.0.0.1 loca1 notice:notice为日志级别,通常有24个级别
●maxconn4096:最大连接数
●uid 99:用户uid
●gid 99:用户gid
一般会被应用组件继承,如果在应用组件中没有特别声明,将安装默认配置参数设置
●log global:定义日志为global配置中的日志定义
●mode http:模式为http
●option httplog:采用http日志格式记录日志
●retries 3:检查节点服务器失败连续达到三次则认为节点不可用
●maxconn2000:最大连接数
●contimeout5000:连接超时时间
●clitimeout50000:客户端超时时间
●srvtimeout50000:服务器超时时间
●listen appli4- backup 0.0.0.0:10004:定义一个appli4- backup的应用
●option httpchk /index.html检查服务器的index.html文件
●option persist:强制将请求发送到已经down掉的服务器(注释掉,否则起服务会报错)
●balance roundrobin:负载均衡调度算法使用轮询算法
●server inst1 192.168.114.56:80 check inter 2000 fall 3:定义在线节点
●server inst2 192.168 114.56:81 check inter 2000 fall 3 backup:定义备份节点
主机 | IP地址 | 主要软件 |
---|---|---|
Haproxy | 192.168.40.11 | haproxy-1.4.24.tar.gz |
Nginx | 192.168.40.12 | nginx-1.13.7.tar.gz |
Nginx | 192.168.40.13 | nginx-1.13.7.tar.gz |
[root@nfs ~]# mkdir /web1
[root@nfs ~]# mkdir /web2
[root@nfs ~]# echo "nginx web 1.
" > /web1/index.html
[root@nfs ~]# echo "nginx web 2.
" > /web2/index.html
[root@nfs ~]# rpm -qa | grep nfs-utils
nfs-utils-1.3.0-0.48.el7.x86_64
[root@nfs ~]# rpm -qa | grep rpcbind
rpcbind-0.2.0-42.el7.x86_64
[root@nfs ~]# vi /etc/exports
/web1 192.168.40.12(ro)
/web2 192.168.40.13(ro)
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl start rpcbind
[root@nfs ~]# showmount -e
Export list for nfs:
/web2 192.168.40.13
/web1 192.168.40.12
先导入nginx软件包 //给web节点配置nginx服务
1.安装依赖环境
yum -y install gcc gcc-c++ make pcre-devel zlib-devel
2、编译安装nginx,并创建用户nginx
useradd -M -s /sbin/nologin nginx
tar zxvf nginx-1.13.7.tar.gz
cd nginx-1.13.7/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make && make install
3、为两台nginx服务器优化启动项
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
mount 192.168.40.14:/web1 /usr/local/nginx/html/
df -Th
nginx //开启服务
curl http://localhost
1.安装依赖环境
yum -y install gcc gcc-c++ make pcre-devel bzip2-devel
2、安装haproxy软件包
tar zxvf haproxy-1.4.24.tar.gz
cd haproxy-1.4.24/
make TARGET=linux26
make install
3、在/etc目录下创建haproxy目录,将软件包中的配置文件模板复制到haproxy目录中
mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/
4、修改haproxy.cfg配置参数
vi /etc/haproxy/haproxy.cfg
下面两项前面加上注释
#chroot /usr/share/haproxy #固有目录,可注释掉
#redispatch #如果后端的服务器宕掉了,但是客户端的cookie是不会刷新的,如果设置此参数,将会将客户的请求强制定向到另外一个后端server上,以保证服务的正常;需要注释掉。
在global下改动和增加各一项:
maxconn 10240
nbproc 4
将原来的listen配置项删除,添加如下参数
listen webcluster 0.0.0.0:80
option httpchk GET /index.html
balance roundrobin
server web1 192.168.40.12:80 check inter 2000 fall 3
server web2 192.168.40.13:80 check inter 2000 fall 3
5、优化服务启动
cp examples/haproxy.init /etc/init.d/haproxy
vi /etc/init.d/haproxy
# chkconfig:35 80 90(将-换成35)
chmod 755 /etc/init.d/haproxy
chkconfig --add haproxy
chkconfig --list
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
systemctl start haproxy #开启服务
在win10的浏览器中访问haproxy服务器的IP地址192.168.40.11进行验证,能够成功访问并且刷新网页能跳转到另一台nginx服务器的页面代表实验成功.
vi /etc/haproxy/haproxy.cfg
##在global下修改内容来定义日志
log /dev/log local0 info
log /dev/log local0 notice
systemctl restart haproxy.service
vi /etc/rsyslog.d/haproxy.conf
添加
if ($programname == 'haproxy' and $syslogseverity-text == 'info')
then -/var/log/haproxy/haproxy-info.log #此为调度日志
&~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice')
then -/var/log/haproxy/haproxy-notice.log #此为程序状态日志
&~
systemctl restart rsyslog.service
systemctl restart haproxy.service
cd /var/log/haproxy/ #可看日志信息
[root@haproxy haproxy]# ls -lh
总用量 132K
-rw------- 1 root root 658 12月 10 16:59 haproxy-info.log
-rw------- 1 root root 66K 12月 10 17:03 haproxy-notice.log
在win10上访问192.168.40.11
cat haproxy-info.log //查看日志,有访问记录
cat haproxy-notice.log
开启统计页面:
vi /etc/haproxy/haproxy.cfg
最后添加
listen admin_stats
bind 0.0.0.0:1080 #设置Frontend和Backend的组合体,监控组的名称,按需要自定义名称
mode http #http的7层模式
option httplog #采用http日志模式
#log 127.0.0.1 local0 err #错误日志记录
maxconn 10 #默认的最大连接数
stats refresh 30s #统计页面自动刷新时间
stats uri /stats #统计页面
stats realm XingCloud\ Haproxy #统计页面密码框上提示文本
stats auth admin:admin #设置监控页面的用户和密码,可以设置多个用户名
stats auth Frank:Frank #设置监控页面的用户和密码∶ Frank
stats hide-version #隐藏统计页面上HAProxy的版本信息
stats admin if TRUE #设置手工启动/禁用,后端服务器(haproxy-1.4.9以后版本)
浏览器访问 http://192.168.40.11:1080/stats
用户名:admin 密码:admin