haproxy学习之安装部署和应用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了haproxy学习之安装部署和应用相关的知识,希望对你有一定的参考价值。
【认识haproxy】
软件作用:负载均衡,可做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
【系统的环境】
[[email protected] haproxy]# ifconfig |grep -A1 eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:65:14:0F
inet addr:192.168.100.10 Bcast:192.168.100.255 Mask:255.255.255.0
[[email protected] haproxy]# uname -r; uname -m
2.6.32-358.el6.x86_64
x86_64
[[email protected] haproxy]# cat /etc/issue
entOS release 6.4 (Final)
【软件准备】
[[email protected] haproxy]# ll -h /usr/local/src/haproxy-1.6.2.tar.gz
-rw-r--r-- 1 root root 1.5M Sep 4 18:52 /usr/local/src/haproxy-1.6.2.tar.gz
【安装】
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
【安装结果和一些常用目录创建】
默认只有三个目录
[[email protected] 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用户
[[email protected] etc]# useradd haproxy
[[email protected] etc]# 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 ###[err warning info debug]
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 #管理用户和密码
[[email protected] etc]#
测试启动:
检查配置文件:
/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:
[[email protected] haproxy]# ps -ef |grep haproxy
haproxy 2394 1 0 22:22 ? 00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.conf -D
haproxy 2395 1 0 22:22 ? 00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.conf -D
root 2626 1707 0 22:27 pts/0 00:00:00 grep --color=auto haproxy
检查端口是否启动:
[[email protected] 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端口】
[[email protected] haproxy]# ssh -p80 192.168.100.10
[email protected]‘s password:
Last login: Sun Sep 4 22:23:02 2016 from 192.168.100.10 #第一被代理轮循到了host1
[[email protected] ~]# logout
Connection to 192.168.100.10 closed.
[[email protected] haproxy]# ssh -p80 192.168.100.10
Last login: Sun Sep 4 22:23:05 2016 from 192.168.100.10 #第二被代理轮循到了host2
[[email protected] ~]# 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监听端口一定要开启)
[[email protected] haproxy]# tail -1 /etc/rsyslog.conf
local3.* /usr/local/haproxy/logs/haproxy.log
2 重启rsyslogd服务
/etc/init.d/rsyslog restart
【编写haproxy的启动脚本】
本文出自 “学通信,第一份工作运维” 博客,请务必保留此出处http://cuidehua.blog.51cto.com/5449828/1846235
以上是关于haproxy学习之安装部署和应用的主要内容,如果未能解决你的问题,请参考以下文章