HAProxy 是目前比较流行的一种群集调度工具,同类群集调度工具中,同 LVS 对比,LVS 性能最好,可是搭建相对比较复杂,Nginx 的 upstream 模块支持群集功能,可是对群集节点的健康检查功能不强,性能没有 HAProxy 好。html
主机 | IP地址 | 主要软件 |
---|---|---|
HAProxy 服务器 | 192.168.100.200 | haproxy-1.5.19.tar.gz |
Nginx 服务器1 | 192.168.100.201 | nginx-1.12.0.tar.gz |
Nginx 服务器2 | 192.168.100.202 | nginx-1.12.0.tar.gz |
1、 编译安装 Nginx 服务器nginx
yum install -y pcre-devel zlib-devel gcc gcc-c++ make useradd -M -s /sbin/nologin nginx tar zxvf nginx-1.12.0.tar.gz -C /opt cd /opt/nginx-1.12.0/ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx make && make install
安装后的默认信息以下。
-默认安装目录: /usr/local/nginx
-默认日志: /usr/local/nginx/logs/
-默认监听端口:80
-默认 Web 目录: /usr/local/nginx/htmlc++
echo "<h1>Server 192.168.100.201</h1>" > /usr/local/nginx/html/test.html /usr/local/nginx/sbin/nginx ##启动nginx systemctl stop firewalld.service setenforce 0
为了方便,网站直接使用 IP 地址访问。在客户端访问 http://192.168.100.201/test.html 进行测试。web
echo "<h1>Server 192.168.100.202</h1>" > /usr/local/nginx/html/test.html
编译安装 HAProxyredis
yum install pcre-devel bzip2-devel gcc gcc-c++ make -y tar zxvf haproxy-1.5.19.tar.gz -C /opt cd haproxy-1.5.19/ make TARGET=linnux26 ##64位系统 make install
HAProxy 服务器配置vim
mkdir /etc/haproxy cp examples/haproxy.cfg /etc/haproxy/ ##复制haproxy.cfg 文件复制到配置文件目录
vim /etc/haproxy/haproxy.cfg chroot /usr/share/haproxy ##删除两条语句及全部 listen 项目 redispatch ##添加 listen webcluster 0.0.0.0:80 option httpchk GET /test.html balance roundrobin server inst1 192.168.100.201:80 check inter 2000 fall 3 server inst2 192.168.100.202:80 check inter 2000 fall 3
复制自启动脚本,并启动服务服务器
cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy chmod +x haproxy chkconfig --add /etc/init.d/haproxy ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy service haproxy start
HAProxy 日志默认输出到系统 syslog 中,查看很是不方便。为了更好的管理日志,能够将 HAProxy 的 info 访问日志和 notice 错误日志记录到不一样的日志文件中。ide
修改配置文件工具
vim /etc/haproxy/haproxy.cfg ##修改成下面的行 global log /dev/log local0 info log /dev/log local0 notice
修改 rsyslog 配置,并重启 rsylog 服务性能
touch /etc/rsyslog.d/haproxy.conf 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 &~
cd /var/log/haproxy/ cat haproxy-info.log