uiyujyht 发表于 2016-9-5 14:53:27

haproxy学习之安装部署和应用

官网:www.haproxy.org
软件作用:负载均衡,可做4层也可做7层。
优点:
1 配置简单,软件使用简单
2 4、7层都可以做
3 有自动的监控检查功能
4 是一个专业反向代理软件
5 会话保持功能比较强大(ngixn的实现是通过ip hash,LVS 是通过-p)
6 几乎不需要优化,支持数以万计的并发连接。

常常用来对比LVS和NGINX对比


【常用环境】
1 邮件服务器代理
2 取代F5 等设备,或者作为其备份
3 代理web

【haporxy的简单搭建和简单使用实例--代理ssh】
目的:学习了解haproxy


【系统的环境】
# ifconfig |grep -A1 eth0
eth0      Link encap:EthernetHWaddr 00:0C:29:65:14:0F
          inet addr:192.168.100.10Bcast:192.168.100.255Mask:255.255.255.0
# uname -r; uname -m
2.6.32-358.el6.x86_64
x86_64
# cat /etc/issue
entOS release 6.4 (Final)


【软件准备】
# ll -h /usr/local/src/haproxy-1.6.2.tar.gz
-rw-r--r-- 1 root root 1.5M Sep4 18:52 /usr/local/src/haproxy-1.6.2.tar.gz


【安装】

1
2
3
4
5
cd /usr/local/src
tar xvf haproxy-1.6.2.tar.gz
cd haproxy-1.6.2
make TARGET=linux2628 ARCH=x86_64
make install PREFIX=/usr/local/haproxy





【安装结果和一些常用目录创建】
默认只有三个目录
# tree -d /usr/local/haproxy/
/usr/local/haproxy/
├── doc
│   └── haproxy
├── sbin
└── share
    └── man


创建一些常用目录:
cd /usr/local/haproxy
mkdir -p etc var/run/ var/chroot logs#放置haproxy配置文的目录,var/run 放置pid等文件的目录


创建haproxy用户
# useradd haproxy
# id haproxy
uid=1002(haproxy) gid=1002(haproxy) groups=1002(haproxy)

【编写haproxy配置文件】
vim haproxy.cfg

#Global settings
global
    log 127.0.0.1:514 local3 info###
    maxconn 20480
    chroot /usr/local/haproxy/var/chroot
    user haproxy #为haproxy 用户的uid ,haproxy用户需要自己手动创建
    group haproxy
    daemon#后台运行
    quiet
    nbproc 2
    pidfile /usr/local/haproxy/var/run/haproxy.pid

##---------------------------------------------------------------------
## common defaults that all the 'listen' and 'backend' sections will
## use if not designated in their block
##---------------------------------------------------------------------
defaults
    log global   ####采用全局定义的日志
    mode http   ###默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
    maxconn 20480
    option httplog
    option httpclose
    option forwardfor
    option dontlognull ###不记录健康检查的日志信息
    option redispatch###serverId对应的服务器挂掉后,强制定向到其他健康的服务器
    retries 3   #3次连接失败就认为服务不可用,也可以通过后面设置
    balance roundrobin
    contimeout 5000
    clitimeout 50000
    srvtimeout 50000
listen ssh_poll
    bind 192.168.100.10:80
    mode tcp
    option httplog
    option dontlognull
    option logasap
    option forwardfor
    option httpclose
server host1 192.168.100.10:22 check inter 2000 rise 3 fall 3
server host2 192.168.100.13:22 check inter 2000 rise 3 fall 3

listen status
    bind 192.168.100.10:8080
    stats enable
    stats uri /stats   #管理地址
    stats auth admin:123456#管理用户和密码
#



测试启动:
检查配置文件:
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.conf -c

-f 指定配置文件
-c check配置文件

后台启动
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.conf -D

检查是否启动1:

# ps -ef |grep haproxy
haproxy   2394   10 22:22 ?      00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.conf -D
haproxy   2395   10 22:22 ?      00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.conf -D
root      262617070 22:27 pts/0    00:00:00 grep --color=auto haproxy

检查端口是否启动:
# netstat -tulnp |grep 80
tcp      0      0 192.168.100.10:8080         0.0.0.0:*                   LISTEN      2394/haproxy      
tcp      0      0 192.168.100.10:80         0.0.0.0:*                   LISTEN      2394/haproxy



【测试80-代理ssh端口】
# ssh -p80 192.168.100.10
root@192.168.100.10's password:
Last login: Sun Sep4 22:23:02 2016 from 192.168.100.10    #第一被代理轮循到了host1
# logout
Connection to 192.168.100.10 closed.
# ssh -p80 192.168.100.10   
Last login: Sun Sep4 22:23:05 2016 from 192.168.100.10      #第二被代理轮循到了host2
# Connection to 192.168.100.10 closed by remote host.
Connection to 192.168.100.10 closed.




【查看日志和配置日志的路径】
1 日志被定义到了local3 级别为info。 这是要开启/etc/init.d/rsyslogd 服务的(如何使用这个服务,百度)。
2 netstat -tulnp |grep 514 查看是否监听rsyslogd端口

默认日志写入/var/log/messages




如何修改日志的路径?
1 修改rsyslogd的配置(514监听端口一定要开启)
# tail -1 /etc/rsyslog.conf
local3.*   /usr/local/haproxy/logs/haproxy.log

2 重启rsyslogd服务
/etc/init.d/rsyslog restart



页: [1]
查看完整版本: haproxy学习之安装部署和应用