一、使用2.6内核Linux,配置sysctl参数

vi /etc/sysctl.conf

#haproxy config
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 10240
net.ipv4.tcp_max_tw_buckets = 400000
net.ipv4.tcp_max_orphans = 60000
net.ipv4.tcp_synack_retries = 3
net.core.somaxconn = 10000

net.ipv4.ip_nonlocal_bind = 1    #解决备节点bind vip报错问题

sysctl -p      #sysctl参数立即生效

二、查看yum源版本

yum list | grep haproxy

三、yum源安装

yum install haproxy -y

安装时haproxy用户及用户组系统会自动创建

四、配置haproxy

vi /etc/haproxy/haproxy.cfg

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
# to have these messages end up in /var/log/haproxy.log you will
# need to:
#
# 1) configure syslog to accept network log events. This is done
# by adding the '-r' option to the SYSLOGD_OPTIONS in
# /etc/sysconfig/syslog
#
# 2) configure local2 events to go to the /var/log/haproxy.log
# file. A line like the following can be added to
# /etc/sysconfig/syslog
#
#
#nbproc 8 #启动进程数
log 127.0.0.1 local0 info
log 127.0.0.1 local1 warning
chroot /var/lib/haproxy #安全参数,出现bug保护
pidfile /var/run/haproxy.pid #进程号文件路径
maxconn 3000
user haproxy
group haproxy
daemon #守护进程的方式运行 # turn on stats unix socket
stats socket /var/lib/haproxy/stats #---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 5s
timeout client 50s
timeout server 50s
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000 #---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend main *:5000
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js use_backend static if url_static
default_backend kdapp frontend kdapp
bind 192.168.0.206:80
maxconn 3000
default_backend kdapp frontend blapp
bind 192.168.0.206:8080
maxconn 300
# acl valid_ip src 172.17.188.0/24
# block if !valid_ip
default_backend blapp
# acl lbprint_dom path_beg -i /lbprint/
# acl tmp_dom hdr(host) -i www.4pinfo.com #tmp_dom名称,hdr(host)主机名,i不区分大小写
# use_backend lbprint if lbprint_dom
# default_backend k3cloud #---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend static
balance roundrobin
server static 192.168.0.72:80 #---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend kdapp
balance roundrobin #轮询模式
mode http
option httpclose
option forwardfor
# option httpchk HEAD /check.html HTTP/1.0
# option httpchk GET /check.html
option allbackups
cookie SERVERID insert indirect
timeout server 50s
timeout connect 15s
server kd70 192.168.0.70:80 cookie kd70 maxconn 3000 check inter 2000 fall 3
server kd71 192.168.0.71:80 cookie kd71 maxconn 3000 check inter 2000 fall 3
server kd73 192.168.0.73:80 cookie kd73 maxconn 3000 check inter 2000 fall 3 backup
# server web01 192.168.0.70:80 check port 80 inter 5000 fall 5
# server web02 192.168.0.72:80 check port 80 inter 5000 fall 5 backend blapp
balance roundrobin
mode http
option httpclose
option forwardfor
cookie SERVERID insert indirect
timeout server 50s
timeout connect 15s
server port81 192.168.0.61:81 cookie port81 maxconn 300 check port 81 weight 5 inter 2000 fall 3
server port82 192.168.0.61:82 cookie port82 maxconn 300 check port 82 weight 5 inter 2000 fall 3 listen stats
bind 192.168.0.206:1080
stats enable
stats refresh 30s
stats hide-version
stats uri /stats
stats realm HAProxy\ Stats
stats auth admin:admin

五、配置rsyslog

1.为rsyslog添加haproxy日志的配置

vi /etc/rsyslog.d/haproxy.conf

local0.* /var/log/haproxy_info.log
local1.* /var/log/haproxy_warn.log

2.修改rsyslog的启动参数,主要目的兼容RHCL5版本

vi /etc/sysconfig/rsyslog

#SYSLOGD_OPTIONS="-c 5"
SYSLOGD_OPTIONS="-c 2 -r -m 0"

3.启动rsyslog,查看端口监听

service rsyslog start

netstat -lntup

rsyslog为UDP的514端口,如果没有端口监听需要修改rsyslog配置,取消配置注释并重启rsyslog

vi /etc/rsyslog.conf

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

六、启动HAProxy

service haproxy start

如果启动不了查日志,根据报错寻找解决办法。生成环境不建议开启info日志,日志记录信息过多比较占空间。

rsyslog不会自动切分,可以使用linux系统自带logrotate进行切分,网上很多文章,此处不累述。

到此配置就完成了,后续只需要优化参数及通过Keepalive或Heartbeat实现高可用。

HAProxy基于Centos6.5安装及配置的更多相关文章

  1. 基于centos6.5安装部署mongdb3.6

    注意:不同的版本的centos,mongdb安装方式不同,请注意版本号!! 基于centos6.5安装部署mongdb3.6 方式有多种,本文介绍使用wget命令来下载获取mongdb,具体命令如下 ...

  2. Centos6.8安装并配置VNC

    一般服务器都会在IDC或云端,为了可以看到服务器的图形化界面,需要安装配置VNC,本例为Centos6.8上安装配置VNC. [root@hostname ~]#yum install -y tige ...

  3. CentOS6.6安装及配置vsftpd文件服务器

    1.安装vsftpd和db4-utils,后者用来生成密码库文件,命令如下: # yum install -y vsftpd db4* 2.修改SELINUX,命令如下: # vim /etc/sys ...

  4. CentOS6.5 安装Sphinx 配置MySQL数据源

      前提安装完mysql,并创建测试表和数据 DROP TABLE IF EXISTS `documents`; CREATE TABLE IF NOT EXISTS `documents` ( `i ...

  5. CentOS6.4 安装Sphinx 配置MySQL数据源

    前提安装完mysql,并创建测试表和数据 DROP TABLE IF EXISTS `documents`; CREATE TABLE IF NOT EXISTS `documents` ( `id` ...

  6. Centos6.5安装与配置Tomcat-8的方法

    环境要求: 系统: [root@Wulaoer ~]# cat /proc/version Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bs ...

  7. CentOS6.5 安装并配置vsftpd

    一.获取root权限 su 输入root密码 二.检查是否安装 rpm -qa | grep vsftpd 如果安装,会显示安装版本号,没有就什么都不显示 三.若已安装过vsftpd,先卸载.卸载前, ...

  8. CentOS6.5安装与配置Mysql数据库

    from:http://www.centoscn.com/mysql/2014/1211/4290.html 一.mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle ...

  9. centos6 mysql 安装与配置

    MySQL简介: 由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库.MySQL是一个多用户.多线程的关系型数据库管理 ...

随机推荐

  1. Flueme学习之路(一)Flume的基础介绍

    背景 Hadoop业务的整体开发流程: ​ 从Hadoop的业务开发流程中可以看出,在大数据的业务处理流程中,对于数据的采集是十分重要的一步,也是不可避免的一步. ​ 许多公司的平台每天会产生大量的日 ...

  2. UVA10870 Recurrences (矩阵快速幂及构造方法详解)

    题意: F(n) =  a1 * F(n-1) + a2 * F(n-2)+ ···· + ad * F(n-d). 求给你的n . 很明显这是一道矩阵快速幂的题目. 题解: [Fn-1, Fn-2, ...

  3. CodeIgniter 技巧 - 通过 Composer 安装 CodeIgniter 框架并安装依赖包

    PHP 项目中,通过 Composer 来管理各种依赖包,类似 Java 中的 Maven,或 Node 中的 npm.CodeIgniter 框架要想通过 Composer 自动加载包也很简单,步骤 ...

  4. Vagrant 入门 - share

    原文地址 译者注:Vagrant Share 功能通过 ngrok 向所有人提供访问内网开发环境的能力. 现在我们已经启动并运行了一台 Web 服务器,并且可以从你的机器访问,我们拥有一个相当实用的开 ...

  5. 23.协程的使用场景,高I/O密集型程序

    import time def one_hundred_millionA(): start_time = time.time() i = 0 for _ in range(100000000): i ...

  6. 跨平台自动构建工具v1.0.2 发布

    XMake是一个跨平台自动构建工具,支持在各种主流平台上构建项目,类似cmake.automake.premake,但是更加的方便易用,工程描述语法更简洁直观,支持平台更多,并且集创建.配置.编译.打 ...

  7. jvm性能监控(5)-jdk自带工具 VisualVM

    一.在服务器的jdk的bin目录下添加配置文件 jstatd.all.policy [root@localhost /]# cd /usr/local/src/jdk1.8.0_131/bin/ [r ...

  8. Django Rest Framewoek

    1 什么是RESTful REST 指的是一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.满足这些约束条件和原则的应用程序或设计就是 RESTful. 2 RESTful设计 ...

  9. U33405 纽约 (二分)

    [题目描述] 牧民 Azone 需要多次往返于两个草场之间运输家当.为了顺利转场,Azone 决定花费 w元津巴布韦币,购买一辆载重为 w 的汽车.共有 n 件家具需要搬运,每件家具的重量为 wi​  ...

  10. JVM(2)之 JAVA堆

    开发十年,就只剩下这套架构体系了! >>>   之前我们说到了栈,它在内存中是连续的空间:保存一个个的栈帧,对应一次次方法的调用:还讲到了他是保存对象的引用,那么对象存在哪里呢?我们 ...