Haproxy+Nginx负载均衡群集及调度日志管理

关于负载均衡群集,在本文之前已经发表有关负载均衡群集的文章,如:Nginx+Tomcat负载均衡群集LVS-NAT模式的负载均衡群集LVS-DR+Keepalive高可用群集;

  • 就性能而言,Nginx的upstream模块支持群集功能,但是对群集节点的健康检查功能不强。
  • LVS的两种模式性能较好,由于搭建过程较为复杂,后期维护也较为繁琐。
  • haproxy是一种轻量级调度服务软件,HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。且搭建配置较为简单。

常用负载均衡调度算法:

  • RR(Round Robin)较为简单的一种轮询算法,即轮询调度;在轮询调度中还有一种加权轮询,即根据每个节点所分配权重轮询分配访问请求。
  • LC(Least Connections)即最小连接数算法,这种算法会根据节点服务器已存在链接服务数比较,会将访问请求首先分配到链接数较少的节点服务器上,由于实际情况节点服务器的连接数会动态释放,很难会出现链接数一样的情况,因此LC算法较RR算法有较大改进。
  • SH(Source Hashing)基于来源访问的调度算法,此算法用于一些有session会话记录在服务器端的场景,可以基于来源的IP地址Cookie等做群集调度。

实验模型

实验环境

服务器 系统环境 IP地址 所需软件
haproxy服务器 centos7.3 192.168.100.101 haproxy
节点web1 centos7.3 192.168.100.201 Nginx
节点web2 centos7.3 192.168.100.202 Nginx

实验部署

1、haproxy服务器

  • 这里服务器都是托管在IDC机房中,若是公网访问需要利用防火墙NAT规则制作映射访问内网服务器IP。
  • 编译安装haproxy调度软件,使得可以调度节点服务器。

yum install pcre pcre-devel bzip2-devel gcc gcc-c++ make -y //安装编译所需环境包

tar zxvf haproxy-1.5.19.tar.gz -C /opt/ //解压haproxy软件包
cd /opt/haproxy-1.5.19/
make TARGET=linux26 //编译64位版本
make install //编译安装,默认路径为/etc下
mkdir /etc/haproxy //创建haproxy工作目录
cp /opt/haproxy-1.5.19/examples/haproxy.cfg /etc/haproxy/ //创建haproxy的配置文件

  • 编辑haproxy主配置文件:

cd /etc/haproxy/
vim haproxy.cfg

global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        #log loghost    local0 info
        maxconn 4096
      # chroot /usr/share/haproxy   //当前工作路径,因为直接make install默认在/etc/haproxy,故此行无需存在
        uid 99
        gid 99
        daemon
        #debug
        #quiet

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        #redispatch      //注释掉;调度服务器强会重复发送请求给节点服务器
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000
listen  webcluster 0.0.0.0:80   //定义haproxy监听页面
        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

(···删除其他listen区域)
  • 复制服务启动脚本

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

2、节点服务器

  • 解压安装Nginx服务

tar zxvf nginx-1.12 -C /opt
cd /opt/nginx-1.12

  • 创建进程用户

useradd -M -s /sbin/nologin nginx

  • 配置安装

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx

  • 编译安装

    make && make install

  • 创建测试首页

此处创建首页格式为test.html,因为在haproxy配置文件中有注明调度网页形式。为区分调度节点服务器,测试首页需要不同。

cd /usr/local/nginx/html
echo "this is first test web" > test.html

  • 建立Nginx启动命令

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

  • 启动服务

    systemctl stop firewalld.service
    setenforce 0
    nginx -t 检查配置文件
    nginx 启动服务

对于节点服务器二,配置方式同节点服务器一,仅需要在测试页面区分。

3、调度测试

4、调度日志管理

由于haproxy调度软件的日志文件默认输出到和系统日志syslog中,而在生产环境中,这样的结果容易导致日志混乱且不便管理查询,因此需要将haproxy日志文件单独定义出来。

  • 修改haproxy配置文件

vim /etc/haproxy/haproxy.cfg

global
        log /dev/log    local0 info      //调度日志为info类型及存放位置
        log /dev/log    local0 notice    //调度日志为notice类型及存放位置
  • 编写系统日志管理haproxy日志的配置文件,方便系统日志进行管理

touch /etc/rsyslog.d/haproxy.conf

vim haproxy.conf

if ($programname == ‘haproxy‘ and $syslogseverity-text == ‘info‘)
then -/var/log/haproxy/haproxy-info.log    //定义新的haproxy日志文件位置
&~
if ($programname == ‘haproxy‘ and $syslogseverity-text == ‘notice‘)
then -/var/log/haproxy/haproxy-notice.log
&~
  • 重启服务

    service haproxy start
    systemctl restart rsyslog.service

  • 日志访问测试
    当使用客户端再次访问时,可以观察到/var/log/haproxy/下已经生成相应日志文件。

原文地址:http://blog.51cto.com/13659253/2133545

时间: 2024-11-17 21:04:53

Haproxy+Nginx负载均衡群集及调度日志管理的相关文章

tomcat+nginx负载均衡群集

线上环境Nginx+Tomcat网站拓扑架构 服务器软件要求: 主机 IP地址 主要软件 Nginx服务器 192.168.1.102 nginx-1.6.0.tar.gz Tomcat1 192.168.1.100 1.jdk-7u65-linux-x64.gz 2.apache-tomcat-7.0.54.tar.gz Tomcat2 192.168.1.101 1.jdk-7u65-linux-x64.gz 2.apache-tomcat-7.0.54.tar.gz 安装并配置java环境

Tomcat部署+Nginx负载均衡群集

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器 在中小型系统和并发访问用户不是很多的场合下被普遍使用, 是开发和调试JSP 程序的首选. 下文中java的包,简称为jdk 通过  wget下载jdk的tar包 wget jdk 本地有可以直接配置,有网的情况下可以去官方下载最新版 解压jdk tar zxf jdk -C /usr/local/java 移动jdk到/usr/local/下并重新命名为java mv /usr/src/jdk /usr/loc

lvs、haproxy、nginx 负载均衡的比较分析

lvs.haproxy.nginx 负载均衡的比较分析 对软件实现负载均衡的几个软件,小D详细看了一下,从性能和稳定上还是LVS最牛,基本达到了F5硬件设备的60%性能,其他几个10%都有点困难. 不过就因为LVS忒牛了,配置也最麻烦了,而且健康检测需要另外配置Ldirector,其他HAPROXY和NGINX自己就用,而且配置超级简单. 所以小D建议,如果网站访问量不是门户级别的用HAPROXY或者NGINX就OK了,到了门户级别在用LVS+Idirector吧 哈哈 lvs和nginx都可以

对比Haproxy和Nginx负载均衡效果

为了对比Hproxy和Nginx负载均衡的效果,分别在测试机上(以下实验都是在单机上测试的,即负载机器和后端机器都在一台机器上)做了这两个负载均衡环境,并各自抓包分析.下面说下这两种负载均衡环境下抓包分析后的结果: 1)Haproxy负载均衡环境下的实验记录.后端有一台机器挂掉后,如果还没达到探测的时间点时,请求还会往挂掉的这台机器转发,请求会丢失.Haproxy负载均衡的实验记录如下:1--先看下Haproxy的配置. 配置inter 20000为20s检测一次,这个是为了更明显的抓下HAPr

HAproxy的负载均衡+日志独立+动静分离+读写分离的配置

主机环境   redhat6.5 64位 实验环境   服务端1 ip 172.25.29.2            服务端2 ip 172.25.29.3             管理端1 ip 172.25.29.1  防火墙状态:关闭 1.Haproxy的负载均衡及测试 A)负载均衡的配置 [[email protected] ~]# yum install haproxy -y            #安装haproxy [[email protected] ~]# vim /etc/h

Nginx + Tomcat 负载均衡群集 【内附源码包】

前言: 1·在之前都学习 Linux 的一些服务和搭建,都很熟悉 !这篇文章主要讲Nginx.Tomcat与 Nginx + Tomcat 负载均衡群集.2·在各种网站服务器软件中,除了 Apache HTTP Server 外,还有一款轻量级的 HTTP 服务器软件--Nginx,它是由俄罗斯 Lgor Sysoev(伊戈尔·赛索耶夫)开发. Nginx 的优点: 1·稳定性2·系统资源消耗低3·高并发链接的处理能力 (30000~50000 个并发请求),核心优点!4·反向代理服务器5·安装

Nginx+Tomcat实现负载均衡群集实例,可跟做!!!

通常情况下一台Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独用于生产环境.所以我们就需要一套更可靠的解决方案来完善Web站点架构. Nginx是一款非常优秀的HTTP服务器软件,它能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定.并且内存.CPU等系统资源消耗非常低.目前的很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力. 案例环境 案例实施 (1)安装部署Tomcat 1服

Nginx+Tomcat负载均衡群集(实战可跟做!)

Nginx+Tomcat负载均衡群集 nginx处理静态 tomcat处理动态 合并为动静分离(前后端分离) Tomcat重要目录 bin:存放启动和关闭Tomcat脚本conf:存放Tomcat不同的配置文件doc:存放Tomcat文档lib/japser/common:存放Tomcat运行需要的库文件logs:存放Tomcat执行时的LOG文件src:存放Tomcat的源代码webapps:Tomcat的主要Web发布目录 Demo前置知识点: Nginx静态处理优势 1.Nginx处理静态

Nginx+Tomcat负载均衡群集搭建

Tomcat简介 Tomcat最初是由Sun的软件构架师詹姆斯邓肯.戴维森开发 安装完Tomcat后安装路径下面的目录和文件,是使用或者配置Tomcat的重要文件 Tomcat重要目录 bin:存放启动和关闭Tomcat脚本 conf:存放Tomcat不同的配置文件 doc:存放Tomcat文档 lib/japser/common:存放Tomcat运行需要的库文件 logs:存放Tomcat执行时的LOG文件 src:存放Tomcat的源代码 webapps:Tomcat的主要Web发布目录 w