0
点赞
收藏
分享

微信扫一扫

Haproxy搭建Web集群

思考的鸿毛 2024-09-21 阅读 19
负载均衡

目录

一、Haproxy

1.什么是Haproxy

2.Haproxy的特性 

3.Haproxy负载均衡的策略(常见) 

4.Haproxy、LVS、Nginx的区别 

二、部署Haproxy

1.Haproxy服务器部署 

1.1关闭防火墙以及增强功能

1.2编译安装

1.3配置Haproxy 

1.4添加Haproxy服务 

2.节点服务器部署(2台) 

2.1关闭防火墙以及增强功能

2.2安装工具

2.3编译安装Nginx 

2.4在节点服务器上设置网页内容 

2.5测试Web集群 

三、日志分析 

1.修改Haproxy配置文件 

2.配置rsyslog 

3.查看Haproxy日志 


一、Haproxy

1.什么是Haproxy

2.Haproxy的特性 

3.Haproxy负载均衡的策略(常见) 

4.Haproxy、LVS、Nginx的区别 

二、部署Haproxy

1.Haproxy服务器部署 

1.1关闭防火墙以及增强功能

systemctl stop firewalld
setenforce 0

1.2编译安装

安装工具
yum install -y pcre-devel bzip2-devel gcc gcc-c++ make


解压压缩包(将安装Haproxy所需软件包传到/opt目录下)
tar zxvf haproxy-1.5.19.tar.gz
cd /opt/haproxy-1.5.19/


编译安装
make TARGET=linux2628 ARCH=x86_64
make install

参数说明
TARGET=linux2628  #指定内核版本,大于2.6.28的用TARGET=linux2628
ARCH=x86_64 	  #系统位数,64位系统

1.3配置Haproxy 

创建配置目录并复制配置文件
mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/
编辑Haproxy配置文件
vim /etc/haproxy/haproxy.cfg


全局配置
global		
		log /dev/log   local0 info		#修改   syslog
        log /dev/log   local0 notice	#修改
        #log loghost    local0 info
        maxconn 4096			#最大连接数,需考虑ulimit -n限制,推荐使用10240       
        #chroot /usr/share/haproxy
        uid 99					#用户UID
        gid 99					#用户GID
        daemon					#守护进程模式
		nbproc 1				#添加,设置并发进程数,建议与当前服务器CPU核数相等或为其2倍


默认配置
defaults   	#配置默认参数,这些参数可以被用到Listen,frontend,backend组件     
		log     global			#引入global定义的日志格式
        mode    http			#模式为http(7层代理http,4层代理tcp)
        option  httplog			#日志类别为http日志格式
        option  dontlognull		#不记录健康检查日志信息
        retries 3				#检查节点服务器失败次数,连续达到三次失败,则认为节点不可用
        redispatch				#当服务器负载很高时,自动结束当前队列处理比较久的连接
        maxconn 2000			#最大连接数,“defaults”中的值不能超过“global”段中的定义
        #contimeout 5000        #设置连接超时时间,默认单位是毫秒
        #clitimeout 50000       #设置客户端超时时间,默认单位是毫秒
        #srvtimeout 50000       #设置服务器超时时间,默认单位是毫秒
        timeout http-request 10s#默认http请求超时时间
        timeout queue 1m   		#默认队列超时时间
        timeout connect 10s		#默认连接超时时间,新版本中替代contimeout,该参数向后兼容
        timeout client 1m		#默认客户端超时时间,新版本中替代clitimeout,该参数向后兼容
        timeout server 1m		#默认服务器超时时间,新版本中替代srvtimeout,该参数向后兼容
        timeout http-keep-alive 10s		#默认持久连接超时时间
        timeout check 10s		#设置心跳检查超时时间


负载均衡配置————删除下面所有listen项--,添加
listen  webcluster 0.0.0.0:80	#haproxy实例状态监控部分配置,定义一个名为webcluster的应用
        option httpchk GET /test.html	#检查服务器的test.html文件
        balance roundrobin				#负载均衡调度算法使用轮询算法roundrobin
        server inst1 172.16.58.20:80 check inter 2000 fall 3		#定义在线节点
        server inst2 172.16.58.30:80 check inter 2000 fall 3

参数说明
balance roundrobin:负载均衡调度算法使用轮询
check inter 2000:健康检查间隔 2000 毫秒
fall 3:节点失效判断为连续三次检测失败

1.4添加Haproxy服务 

添加初始化脚本并设置权限
cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy


添加到系统服务并启动
chkconfig --add /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
service haproxy start

2.节点服务器部署(2台) 

2.1关闭防火墙以及增强功能

systemctl stop firewalld
setenforce 0

2.2安装工具

yum install -y pcre-devel zlib-devel gcc gcc-c++ make

2.3编译安装Nginx 

解压软件包(将nginx软件包全部放到/opt下面)
cd /opt
tar zxvf nginx-1.12.0.tar.gz


编译安装
cd nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx

make && make install


创建Nginx用户
useradd -M -s /sbin/nologin nginx
查看是否创建成功
tail -2 /etc/passwd
设置符号链接并启动Nginx
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx   #启动nginx服务

2.4在节点服务器上设置网页内容 

172.16.58.20
echo "this is wm" > /usr/local/nginx/html/test.html

172.16.58.30
echo "this is fzx" > /usr/local/nginx/html/test.html

2.5测试Web集群 

三、日志分析 

1.修改Haproxy配置文件 

vim /etc/haproxy/haproxy.cfg
 
global
    log /dev/log local0 info
    log /dev/log local0 notice


修改完之后重启Haproxy
service haproxy restart

2.配置rsyslog 

vim /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
&~

修改完之后重启Haproxy
service haproxy restart


参数说明
$programname == 'haproxy':筛选出由 HAProxy 生成的日志
$syslogseverity-text == 'info' 和 $syslogseverity-text == 'notice':过滤出相应级别的日志
-:表示将日志写入到指定文件
&~:表示在日志写入后停止处理这条日志

3.查看Haproxy日志 

tail -f /var/log/haproxy/haproxy-info.log    # 查看 info 级别的 HAProxy 日志
tail -f /var/log/haproxy/haproxy-notice.log  # 查看 notice 级别的 HAProxy 日志
举报

相关推荐

0 条评论