haproxy环境搭建和部署

1案例环境:

主机            操作系统                     IP地址                  主要的软件

----------------------------------------------------------------------------

Haproxy    CentOS6.6 x86_64   192.168.200.101  haproxy-1.4.24.tar.gz

Nginx1    CentOS6.6 x86_64   192.168.200.103  nginx-1.6.2.tar.gz

Nginx2    CentOS6.6 x86_64   192.168.200.104  nginx-1.6.2.tar.gz

2haproxy 配置:

 实验环境:三台虚拟机,一台是haproxy,其他两台是网站

(1):yum  -y install gcc gcc-c++ make pcre-devel bzip2-devel  安装依赖包

 (2): rz上传

 (3):tar xf haproxy-1.4.24.tar.gz -C /usr/src   解压

 (4): cd /usr/src/haproxy…..  切换目录

 (5): make TARGET=linux26 && make install  安装

(6): 在web服务器上添加测试页(安装httpd)

   《1》:第一台添加111111测试页

  《2》:第二台添加22222222测试页

(7):mkdir /etc/haproxy  创建目录

(8):cp examples/haproxy.cfg /etc/haproxy/复制

(9):vim /etc/haproxy/haproxy.cfg  编辑主配置文件

###########全局配置#########

global

 log 127.0.0.1 local0           #日志输出配置,所有日志都记录在本机系统日志,通过local0输出

 log 127.0.0.1 local1 notice    #notice为日志级别,通常有24个级别(error warringinfo debug)

 nbproc 1   #设置进程数量,通常是CPU核心数或者2倍

 pidfile /etc/haproxy/haproxy.pid       #haproxy 进程PID文件

 maxconn 4096               #最大连接数(需考虑ulimit-n限制 )

 #chroot /usr/share/haproxy             #chroot运行路径

 uid 99                 #用户uid

 gid 99                 #用户gid

 daemon             #守护进程模式,以后台服务形式允许

 #debug                                 #haproxy 调试级别,建议只在开启单进程的时候调试 

########默认配置############

defaults

 log global                 #定义日志为global配置中的日志定义

 mode http              #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK

 option httplog         #日志类别,采用http日志格式记录日志

 #option  dontlognull             #不记录健康检查日志信息             

 retries 3              #检查节点服务器失败次数,连续达到三次失败,则认为节点不可用

 #option  forwardfor             #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端i

 #option  httpclose                     #每次请求完毕后主动关闭http通道,haproxy不支持keep-alive,只能模拟这种模式的实现

 maxconn 4096               #最大连接数

 contimeout 5000            #连接超时时间

 clitimeout 50000           #客户端超时时间

 srvtimeout 50000           #服务器超时时间

 #timeout check 2000              #心跳检测超时

 #timeout http-keep-alive10s         #默认持久连接超时时间

 #timeout http-request   10s         #默认http请求超时时间

 #timeoutqueue          1m           #默认队列超时时间

  ########统计页面配置########

listen admin_stats

   bind 0.0.0.0:1080#设置Frontend和Backend的组合体,监控组的名称,按需要自定义名称

   mode http                 #http的7层模式

   option httplog               #采用http日志格式

   #log 127.0.0.1 local0 err         #错误日志记录

maxconn 10                  #默认的最大连接数

stats refresh 30s #统计页面自动刷新时间

stats uri /stats                                 #统计页面url

stats realm Crushlinux\ Haproxy#统计页面密码框上提示文本

stats auth admin:admin#设置监控页面的用户和密码:admin,可以设置多个用户名

stats hide-version                #隐藏统计页面上HAProxy的版本信息

#stats admin if TRUE             #设置手工启动/禁用,后端服务器(haproxy-1.4.9以后版本)

########设置haproxy 错误页面#####

errorfile 403 /home/haproxy/haproxy/errorfiles/403.http

errorfile 500 /home/haproxy/haproxy/errorfiles/500.http

errorfile 502 /home/haproxy/haproxy/errorfiles/502.http

errorfile 503 /home/haproxy/haproxy/errorfiles/503.http

errorfile 504 /home/haproxy/haproxy/errorfiles/504.http

########frontend前端配置##############

bibind *:80#这里建议使用bind *:80的方式,要不然做集群高可用的时候有问题,vip切换到其他机器就不能访问了。

acl web hdr(host) -i www.abc.com#acl后面是规则名称,-i是要访问的域名

acl img hdr(host) -i img.abc.com #如果访问www.abc.com这个域名就分发到下面的webserver 的作用域。

#如果访问img.abc.com.cn就分发到imgserver这个作用域。

use_backend webserver if web

use_backend imgserver if img

########backend后端配置##############

backend webserver      #webserver作用域

mode http

balance roundrobin#banlance roundrobin 轮询,balance source 保存session值,支持static-rrleastconnfirsturi等参数

option httpchk /index.html HTTP/1.0 #健康检查,检测文件,如果分发到后台index.html访问不到就不再分发给它

server web1 192.168.200.103:80 cookie 1 weight 1 check inter 2000 rise 2 fall 3

server web2 192.168.200.104:80 cookie 2 weight 1 check inter 2000 rise 2 fall 3

#cookie 1表示serverid为1,check inter 1500 是检测心跳频率

#rise 2是2次正确认为服务器可用,fall 3是3次失败认为服务器不可用,weight代表权重

backend imgserver

mode http

option httpchk /index.php

balance roundrobin

server img01 192.168.200.105:80 check inter 2000 fall 3

server img02 192.168.200.106:80 check inter 2000 fall 3

########tcp配置#################

listen test1

bind 0.0.0.0:90

mode tcp

option tcplog #日志类别,采用tcplog

maxconn 4086

#log 127.0.0.1 local0 debug

server s1 192.168.200.107:80 weight 1

server s2 192.168.200.108:80 weight 1

修改为以下:

[root@localhost ~]# vim /etc/haproxy/haproxy.cfg

# this config needs haproxy-1.1.28 or haproxy-1.2.1

global

#   log 127.0.0.1   local0

#   log 127.0.0.1   local1 notice

    log /dev/log    local0 info

    log /dev/log    local0 notice

    maxconn 4096

    uid 99

    gid 99

    daemon

defaults

    log global

    mode    http

    option  httplog

    retries 3

    maxconn 4096

    contimeout  5000

    clitimeout  50000

    srvtimeout  50000

listen  webcluster 0.0.0.0:80

    option  httpchk GET /index.html

    balance roundrobin

    server  inst1 192.168.100.20:80 check inter 2000 fall 3

    server  inst1 192.168.100.30: 80 check inter 2000 fall 3

listen admin_stats

    bind 0.0.0.0:8000

    mode http

    option httplog

    maxconn 100

    stats refresh 30s

    stats uri /stats

    stats realm Crushlinux\ Haproxy

        stats auth admin:admin

    stats hide-version

(10):cp /usr/src/haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy 复制【

(11):ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy  创建链接

(12): chmod +x /etc/init.d/haproxy  加权限

(13): /etc/init.d/haproxy start  启动服务

(14): netstat -lnpt |grep haproxy  查看端口

(15):访问

16): http://192.168.100.10:8000/stats  查看状态

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BK_小小关

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值