环境介绍(基于Ubuntu 18.04):
node1 | 192.168.8.105 | Haproxy |
node2 | 192.168.8.106 | Nginx1 |
node3 | 192.168.8.107 | Nginx2 |
1.安装haproxy2.4版本的软件包.命令如下:
apt-get -y install software-properties-common
add-apt-repository ppa:vbernat/haproxy-2.4
apt-get -y update
apt-get –y install haproxy=2.4.\*
2.打开/etc/haproxy/haproxy.cfg,添加如下内容:
listen webcluster #haproxy实例状态监控部分配置,定义一个名为webcluster的应用
bind 192.168.8.105:80
mode http
log global #开启日志
balance roundrobin #负载均衡调度算法使用基于权重轮询算法roundrobin
server inst1 192.168.8.106:80 check inter 2000 fall 3 #定义在线节点
server inst2 192.168.8.107:80 check inter 2000 fall 3
#server的配置说明:
a.check:做健康检查。需要配置端口才能做健康检查
b.inter:健康状态检查间隔时间,默认2000ms
c.fall:后端服务器几次失败即不可用,默认为3
3.分别在192.168.8.106和192.168.8.107安装nginx。这里使用源码安装nginx。操作命令如下:
apt-get -y install libpcre3 libpcre3-dev openssl libssl-dev gcc #安装nginx的依赖包
从nginx.org下载nginx安装包,之后执行如下操作:
tar -xf nginx-1.22.1.tar.gz #解压
cd nginx-1.22.1
./configure #预编译
Make && make install #编译&安装
注意:Nginx预编译过程中出现找不到zlib的错误,需要安装zlib。安装过程如下:
wget http://www.zlib.net/zlib-1.2.13.tar.gz
tar -xf zlib-1.2.13.tar.gz
cd zlib-1.2.13
./configure
Make && make install
这样Nginx的预编译就正常了。
4.将Nginx的测试页面分别作修改,便于区分
192.168.8.106:echo 'this is web1' > /usr/local/nginx/html/index.html
192.168.8.107:echo 'this is web2' > /usr/local/nginx/html/index.html
最后启动Nginx:/usr/local/nginx/sbin/nginx
192.168.8.105也启动Haproxy:systemctl restart haproxy
5.最后测试效果如下: