一、使用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. __I、 __O 、__IO是什么意思?怎么用?

    出处:http://www.chuxue123.com/forum.php?mod=viewthread&tid=122&ctid=3 __I. __O .__IO是什么意思?这是ST ...

  2. Mac定制终端:iTerm2 + zsh + powerline

    原始界面:   配置后的界面:   安装iTerm2 可以直接去官网下载:https://www.iterm2.com/ 下载后直接安装即可 安装主题 所有主题:https://iterm2color ...

  3. pve之命令

    pvesr list ha-manager status pvecm nodes pvecm status pveperf qm list root@cu-pve06:~# pvesr list Jo ...

  4. CSS-父元素宽度自适应子元素宽度之和

    最近碰见这样一个需求,要让图片横向排列设置 x 方向的滚动条滚动查看,原本当直接创建一个 IFC(inline,float 什么的)就解决了,搞了半天发现搞不定(IFC 也是不能父元素宽度自适应子元素 ...

  5. 用BP人工神经网络识别手写数字

    http://wenku.baidu.com/link?url=HQ-5tZCXBQ3uwPZQECHkMCtursKIpglboBHq416N-q2WZupkNNH3Gv4vtEHyPULezDb5 ...

  6. Delphi中Tlist实例

    http://blog.163.com/jiandande3218@126/blog/static/74728469201132721428194/ Delphi中Tlist实例 2011-04-27 ...

  7. canvas绘制小人开口和闭口

    css: <style> body{ text-align: center; } canvas{ background: #ddd; } </style>canvas标签:&l ...

  8. 学习:STL----优先队列

    优先队列是队列的高级版,最大的特点是可以内部实现排序 优先队列的定义 优先队列内部使用堆排序,从而实现队列内一直保持着某种顺序规律(比如递增,递减等) 在使用优先队列时,首先要引入头文件:#inclu ...

  9. Linux-第二篇常用命令

    1.常用目录文件操作命令 cd:切换目录 格式:cd 目录 ls:显示文件和目录列表.可选参数: -l 列出文件的详细信息 -a 列出当前目录所有文件,包含隐藏文件 ll:查看目录接口,相当于是ls ...

  10. 报错: no such table:django_session解决方式

    如果出现这个错误 “no such table:django_session” 这个错误跟Session的机制有关, 既然要从Web服务器端来记录用户信息, 那么一定要有存放用户session id对 ...