使用 Haproxy + Nginx 实现高可用配置 |
您所在的位置:网站首页 › f5与nginx配合 › 使用 Haproxy + Nginx 实现高可用配置 |
使用 Haproxy + Nginx 实现高可用配置
一、基本介绍二、使用 Haproxy + Nginx 实现高可用配置1.安装 Nginx2.安装 Haproxy3.修改 Haproxy 配置文件4.启动 Haproxy 服务5.验证
一、基本介绍
Haproxy 是目前比较流行的一种集群调度工具,同类集群调度器工具有很多,如 LVS 和 Nginx。相比较而言,LVS 性能最好,但是搭建相对复杂;Nginx 的 upstream 模块虽然支持集群功能,但是对集群节点健康检查功能不强,性能没有 Haproxy 好。 Haproxy 可以提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理,并且支持虚拟主机配置。官方介绍 常见调度模式: 调度模式作用Round Robin(轮询)根据轮询分配访问请求,来实现负载均衡的效果(可以配置权重,以此增加调度概率)Least Connections(最小连接数)根据后端节点的连接数大小,来动态的分配前端请求(将请求优先分配到连接数小的节点上)Source Hashing(基于来源访问调度)用于一些有 Session 会话记录在服务器端的场景,可以基于来源 IP、Cookie 等进行集群调度。 二、使用 Haproxy + Nginx 实现高可用配置准备工作: 主机名操作系统IP地址软件包Nginx-1CentOS7.4192.168.1.1nginx-1.21.0.tar.gzNginx-2CentOS7.4192.168.1.2nginx-1.21.0.tar.gzHaproxyCentOS7.4192.168.1.3haproxy-2.6.0.tar.gz 1.安装 Nginx1)安装并启动 Nginx 服务 [root@Nginx-1 ~]# yum -y install pcre-devel zlib-devel popt-devel openssl-devel openssl [root@Nginx-1 ~]# wget http://www.nginx.org/download/nginx-1.21.0.tar.gz [root@Nginx-1 ~]# ls anaconda-ks.cfg nginx-1.21.0.tar.gz [root@Nginx-1 ~]# tar zxf nginx-1.21.0.tar.gz -C /usr/src/ [root@Nginx-1 ~]# cd /usr/src/nginx-1.21.0/ [root@Nginx-1 nginx-1.21.0]# useradd -M -s /sbin/nologin nginx [root@Nginx-1 nginx-1.21.0]# ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-file-aio \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-http_flv_module \ --with-http_ssl_module \ --with-stream \ --with-pcre && make && make install [root@Nginx-1 nginx-1.21.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ [root@Nginx-1 nginx-1.21.0]# cd [root@Nginx-1 ~]# nginx [root@Nginx-1 ~]# netstat -anpt | grep 802)配置 Nginx 页面 [root@Nginx-1 ~]# echo "This is 192.168.1.1" > /usr/local/nginx/html/index.html [root@Nginx-2 ~]# echo "This is 192.168.1.2" > /usr/local/nginx/html/index.html1)启动 Haproxy 服务 [root@Haproxy ~]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg [root@Haproxy ~]# ps aux | grep haproxy2)修改 Rsyslog 配置文件 Haproxy 在默认情况下并不会记录日志,除了需要在 Haproxy 配置文件内指定日志的输出外,还需要修改系统日志的配置文件。 [root@Haproxy ~]# sed -i 's/ModLoad imudp/^#//' /etc/rsyslog.conf [root@Haproxy ~]# sed -i 's/UDPServerRun 514/^#//' /etc/rsyslog.conf [root@Haproxy ~]# echo "local0.info /usr/local/haproxy/logs/access.log" >> /etc/rsyslog.conf [root@Haproxy ~]# echo "local0.notice /usr/local/haproxy/logs/error.log" >> /etc/rsyslog.conf [root@Haproxy ~]# mkdir /usr/local/haproxy/logs [root@Haproxy ~]# systemctl restart rsyslog 5.验证1)验证 LB(负载均衡) [root@Haproxy ~]# for i in $(seq 1 10);do curl 192.168.1.3:8080;done2)验证 HA(高可用) [root@Nginx-1 ~]# /usr/local/nginx/sbin/nginx -s stop [root@Haproxy ~]# for i in $(seq 1 10);do curl 192.168.1.3:8080;done
4)查看 Haproxy 监控界面 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |