HAProxy基于Centos6.5安装及配置
一、使用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安装及配置的更多相关文章
- 基于centos6.5安装部署mongdb3.6
注意:不同的版本的centos,mongdb安装方式不同,请注意版本号!! 基于centos6.5安装部署mongdb3.6 方式有多种,本文介绍使用wget命令来下载获取mongdb,具体命令如下 ...
- Centos6.8安装并配置VNC
一般服务器都会在IDC或云端,为了可以看到服务器的图形化界面,需要安装配置VNC,本例为Centos6.8上安装配置VNC. [root@hostname ~]#yum install -y tige ...
- CentOS6.6安装及配置vsftpd文件服务器
1.安装vsftpd和db4-utils,后者用来生成密码库文件,命令如下: # yum install -y vsftpd db4* 2.修改SELINUX,命令如下: # vim /etc/sys ...
- CentOS6.5 安装Sphinx 配置MySQL数据源
前提安装完mysql,并创建测试表和数据 DROP TABLE IF EXISTS `documents`; CREATE TABLE IF NOT EXISTS `documents` ( `i ...
- CentOS6.4 安装Sphinx 配置MySQL数据源
前提安装完mysql,并创建测试表和数据 DROP TABLE IF EXISTS `documents`; CREATE TABLE IF NOT EXISTS `documents` ( `id` ...
- Centos6.5安装与配置Tomcat-8的方法
环境要求: 系统: [root@Wulaoer ~]# cat /proc/version Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bs ...
- CentOS6.5 安装并配置vsftpd
一.获取root权限 su 输入root密码 二.检查是否安装 rpm -qa | grep vsftpd 如果安装,会显示安装版本号,没有就什么都不显示 三.若已安装过vsftpd,先卸载.卸载前, ...
- CentOS6.5安装与配置Mysql数据库
from:http://www.centoscn.com/mysql/2014/1211/4290.html 一.mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle ...
- centos6 mysql 安装与配置
MySQL简介: 由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库.MySQL是一个多用户.多线程的关系型数据库管理 ...
随机推荐
- html5: postMessage解决跨域通信的问题
效果图 postmessage解析 HTML5提供了新型机制PostMessage实现安全的跨源通信. 语法 otherWindow.postMessage(message, targetOrigin ...
- 129、TensorFlow计算图的可视化
import tensorflow as tf # Build your graph x = tf.constant([[37.0, -23.0], [1.0, 4.0]], name="i ...
- Jquery浅析
目录 jquery 通过jquery改变标签字体颜色 jquery和js对象之间值转化 Jquery基本选择器 Jquery层级选择器 基本筛选器 操作类属性 模太框 表单筛选器 筛选器方法 设置多个 ...
- CentOS 7命令行安装GNOME、KDE图形界面(成功安装验证)
来源:cnblogs.com/Amedeo 作者:Amedeo 正文 CentOS 7 默认是没有图形化界面的,但我们很多人在习惯了 Windows 的图形化界面之后,总是希望有一个图形化界面从而方 ...
- Python-位操作 ( &,|,~,^,<<,>>
用于提高运算速度,规避算术运算符 在位操作运算中,不应该试图考虑先得到一个数的二进制码 ,而是应该将这个数看作是一个二进制码,二进制补码与整数之间是一一对应的. 诚然Python中有内置函数bin将一 ...
- 协程分析之context上下文切换
协程现在已经不是个新东西了,很多语言都提供了原生支持,也有很多开源的库也提供了协程支持. 最近为了要给tbox增加协程,特地研究了下各大开源协程库的实现,例如:libtask, libmill, bo ...
- docker实现分布式项目部署
docker的安装及基本命令这里就略过了,可以看我的这篇笔记https://www.cnblogs.com/pyweb/p/11351878.html. 这次需要在docker上部署两个项目,整体的流 ...
- 实现自己的DiscoveryClient
需要做的: DiscoveryClient能提供那些服务的服务名列表 返回指定服务对于的ServiceInstance列表 返回DiscoveryClient的顺序 返回HealthIndicator ...
- mysql 5.7 事务隔离级别
事务的隔离级别分为:未提交读(read uncommitted).已提交读(read committed).可重复读(repeatable read).串行化(serializable). 未提交读: ...
- 报错: no such table:django_session解决方式
如果出现这个错误 “no such table:django_session” 这个错误跟Session的机制有关, 既然要从Web服务器端来记录用户信息, 那么一定要有存放用户session id对 ...