Haproxy安装和部署.docx

上传人:b****1 文档编号:14901339 上传时间:2023-06-28 格式:DOCX 页数:14 大小:21.89KB
下载 相关 举报
Haproxy安装和部署.docx_第1页
第1页 / 共14页
Haproxy安装和部署.docx_第2页
第2页 / 共14页
Haproxy安装和部署.docx_第3页
第3页 / 共14页
Haproxy安装和部署.docx_第4页
第4页 / 共14页
Haproxy安装和部署.docx_第5页
第5页 / 共14页
Haproxy安装和部署.docx_第6页
第6页 / 共14页
Haproxy安装和部署.docx_第7页
第7页 / 共14页
Haproxy安装和部署.docx_第8页
第8页 / 共14页
Haproxy安装和部署.docx_第9页
第9页 / 共14页
Haproxy安装和部署.docx_第10页
第10页 / 共14页
Haproxy安装和部署.docx_第11页
第11页 / 共14页
Haproxy安装和部署.docx_第12页
第12页 / 共14页
Haproxy安装和部署.docx_第13页
第13页 / 共14页
Haproxy安装和部署.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Haproxy安装和部署.docx

《Haproxy安装和部署.docx》由会员分享,可在线阅读,更多相关《Haproxy安装和部署.docx(14页珍藏版)》请在冰点文库上搜索。

Haproxy安装和部署.docx

Haproxy安装和部署

haproxy凭借自身的优势,常在生产环境中用于web和数据库的负载,下面是个人对haproxy的了解。

准备:

3台CentOS系统,1台做haproxy,2台做realserver(已经配置好用apache提供web服务),yum源,编译环境

配置步骤:

添加haproxy用户和组,用于运行haproxy,下载源码包,编译安装,haproxy的配置文件需要自己手动创建,最后使用haproxy自带脚本启动。

#groupadd-rhaproxy

#useradd-r-M-ghaproxy-s/sbin/nologinhaproxy

#wgethttp:

//haproxy.1wt.eu/download/1.4/src/haproxy-1.4.20.tar.gz

#tarxfhaproxy-1.4.20.tar.gz

#cdhaproxy-1.4.20

#makeTARGET=linux26PREFIX=/usr/local/haproxyinstall

#cd/usr/local/

#chown-Rhaproxy.haproxy/

#cd/usr/local/haproxy/

#vimhaproxy.cfg

global

log127.0.0.1local0info#[errwarninginfodebug]

maxconn4096

userhaproxy

grouphaproxy

daemon

nbproc1

pidfile/var/run/haproxy.pid

defaults

maxconn2000

contimeout5000

clitimeout30000

srvtimeout30000

listenadmin_status

modehttp

bind192.168.1.104:

8899

optionhttplog

logglobal

statsenable

statsrefresh10s

statshide-version

statsrealmHaproxy\Statistics

statsuri/admin_status

statsauthhaproxy:

gaby

statsadminifTRUE

serverapp1_1192.168.1.103:

80cookieapp1inst1checkinter2000rise2fall5

serverapp1_2192.168.1.104:

80cookieapp1inst2checkinter2000rise2fall5

#chownhaproxy.haproxy.cfg

#cd/usr/local/haproxy/sbin/

#./haproxy-f../haproxy.cfg

此刻用ie访问http:

//192.168.1.104:

8899会发现调度到两个不同的realserver中。

用http:

//192.168.1.104:

8899/admin-status输入账号密码(haproxy/gaby

定义)后可以查看当前haproxy的工作状态。

很多朋友喜欢sv脚本,写个呗!

#cd/etc/init.d/

#vimhaproxy

#!

/bin/bash

#

#haproxyStartupscriptforthehaproxyServer,writebygabylinux

#

#chkconfig:

-8614

#description:

haproxy

#processname:

haproxy

#config:

/usr/local/haproxy/haproxy.cfg

#pidfile:

/usr/local/haproxy/haproxy.pid

#Sourcefunctionlibrary.

./etc/rc.d/init.d/functions

#Sourcenetworkingconfiguration.

./etc/sysconfig/network

#Checkthatnetworkingisup.

["$NETWORKING"="no"]&&exit0

HAPROXY_CONF_FILE=/usr/local/haproxy/haproxy.cfg

haproxy="/usr/local/haproxy/sbin/haproxy"

prog=$(basename$haproxy)

lockfile=/var/lock/subsys/haproxy

start(){

[-x$haproxy]||exit5

[-f$HAPROXY_CONF_FILE]||exit6

echo-n$"Starting$prog:

"

daemon$haproxy-f$HAPROXY_CONF_FILE

retval=$?

echo

[$retval-eq0]&&touch$lockfile

return$retval

echo"ok"

}

stop(){

echo-n$"Stopping$prog:

"

killproc$prog-9

retval=$?

echo

[$retval-eq0]&&rm-f$lockfile

return$retval

}

restart(){

#configtest||return$?

stop

sleep1

start

}

reload(){

#configtest||return$?

echo-n$"Reloading$prog:

"

killproc$haproxy-HUP

RETVAL=$?

echo

}

rh_status(){

status$prog

}

rh_status_q(){

rh_status>/dev/null2>&1

}

case"$1"in

start)

rh_status_q&&exit0

$1

;;

stop)

rh_status_q||exit0

$1

;;

restart|configtest)

$1

;;

reload)

rh_status_q||exit7

$1

;;

*)

echo$"Usage:

$0{start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"

exit2

esac

==========================配置文件说明=======================

haproxy配置文件说明

来源

点击(此处)折叠或打开

global

       maxconn20480#默认最大连接数

       log127.0.0.1local3#[errwarninginfodebug]

       chroot/var/haproxy#chroot运行的路径

       uid99#所属运行的用户uid

       gid99#所属运行的用户组

       daemon#以后台形式运行haproxy

       nbproc1#进程数量(可以设置多个进程提高性能)

       pidfile/var/run/haproxy.pid#haproxy的pid存放路径,启动进程的用户必须有权限访问此文件

       ulimit-n65535#ulimit的数量限制

 

 

#####################默认的全局设置######################

##这些参数可以被利用配置到frontend,backend,listen组件##

defaults

       logglobal

       modehttp#所处理的类别(#7层http;4层tcp)

       maxconn20480#最大连接数

       optionhttplog#日志类别http日志格式

       optionhttpclose#每次请求完毕后主动关闭http通道

       optiondontlognull#不记录健康检查的日志信息

       optionforwardfor#如果后端服务器需要获得客户端真实ip需要配置的参数,可以从HttpHeader中获得客户端ip

       optionredispatch#serverId对应的服务器挂掉后,强制定向到其他健康的服务器

       optionabortonclose#当服务器负载很高的时候,自动结束掉当前队列处理比较久的连接

       statsrefresh30#统计页面刷新间隔

       retries3#3次连接失败就认为服务不可用,也可以通过后面设置

       balanceroundrobin#默认的负载均衡的方式,轮询方式

      #balancesource#默认的负载均衡的方式,类似nginx的ip_hash

      #balanceleastconn#默认的负载均衡的方式,最小连接

       contimeout5000#连接超时

       clitimeout50000#客户端超时

       srvtimeout50000#服务器超时

       timeoutcheck2000#心跳检测超时

 

####################监控页面的设置#######################

listenadmin_status#Frontend和Backend的组合体,监控组的名称,按需自定义名称

        bind0.0.0.0:

65532#监听端口

        modehttp#http的7层模式

        log127.0.0.1local3err#错误日志记录

        statsrefresh5s#每隔5秒自动刷新监控页面

        statsuri/admin?

stats#监控页面的url

        statsrealmitnihao\itnihao#监控页面的提示信息

        statsauthadmin:

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

        statsauthadmin1:

admin1#监控页面的用户和密码admin1

        statshide-version#隐藏统计页面上的HAproxy版本信息

        statsadminifTRUE#手工启用/禁用,后端服务器(haproxy-1.4.9以后版本)

 

 

       errorfile403/etc/haproxy/errorfiles/403.http

       errorfile500/etc/haproxy/errorfiles/500.http

       errorfile502/etc/haproxy/errorfiles/502.http

       errorfile503/etc/haproxy/errorfiles/503.http

       errorfile504/etc/haproxy/errorfiles/504.http

 

#################HAProxy的日志记录内容设置###################

       capturerequestheaderHostlen40

       capturerequestheaderContent-Lengthlen10

       capturerequestheaderRefererlen200

       captureresponseheaderServerlen40

       captureresponseheaderContent-Lengthlen10

       captureresponseheaderCache-Controllen8

     

#######################网站监测listen配置#####################

###########此用法主要是监控haproxy后端服务器的监控状态############

listensite_status

       bind0.0.0.0:

1081#监听端口

       modehttp#http的7层模式

       log127.0.0.1local3err#[errwarninginfodebug]

       monitor-uri/site_status#网站健康检测URL,用来检测HAProxy管理的网站是否可以用,正常返回200,不正常返回503

       aclsite_deadnbsrv(server_web)lt2#定义网站down时的策略当挂在负载均衡上的指定backend的中有效机器数小于1台时返回true

       aclsite_deadnbsrv(server_blog)lt2

       aclsite_deadnbsrv(server_bbs)lt2

       monitorfailifsite_dead#当满足策略的时候返回503,网上文档说的是500,实际测试为503

       monitor-net192.168.16.2/32#来自192.168.16.2的日志信息不会被记录和转发

       monitor-net192.168.16.3/32

 

########frontend配置############

#####注意,frontend配置里面可以定义多个acl进行匹配操作########

frontendhttp_80_in

       bind0.0.0.0:

80#监听端口,即haproxy提供web服务的端口,和lvs的vip端口类似

       modehttp#http的7层模式

       logglobal#应用全局的日志配置

       optionhttplog#启用http的log

       optionhttpclose#每次请求完毕后主动关闭http通道,HA-Proxy不支持keep-alive模式

       optionforwardfor#如果后端服务器需要获得客户端的真实IP需要配置次参数,将可以从HttpHeader中获得客户端IP

       ########acl策略配置#############

       aclitnihao_webhdr_reg(host)-i^(|)$

       #如果请求的域名满足正则表达式中的2个域名返回true-i是忽略大小写

       aclitnihao_bloghdr_dom(host)-i

       #如果请求的域名满足返回true-i是忽略大小写

       #aclitnihaohdr(host)-i

       #如果请求的域名满足返回true-i是忽略大小写

       #aclfile_requrl_sub-ikillall=

       #在请求url中包含killall=,则此控制策略返回true,否则为false

       #acldir_requrl_dir-iallow

       #在请求url中存在allow作为部分地址路径,则此控制策略返回true,否则返回false

       #aclmissing_clhdr_cnt(Content-length)eq0

       #当请求的header中Content-length等于0时返回true

 

########acl策略匹配相应#############

       #blockifmissing_cl

       #当请求中header中Content-length等于0阻止请求返回403

       #blockif!

file_req||dir_req

       #block表示阻止请求,返回403错误,当前表示如果不满足策略file_req,或者满足策略dir_req,则阻止请求

       use_backendserver_webifitnihao_web

       #当满足itnihao_web的策略时使用server_web的backend

       use_backendserver_blogifitnihao_blog

       #当满足itnihao_blog的策略时使用server_blog的backend

       #redirectprefixcode301ifitnihao

       #当访问的时候,用http的301挑转到http:

//192.168.16.3

       default_backendserver_bbs

       #以上都不满足的时候使用默认server_bbs的backend

 

 

##########backend的设置##############

#下面我将设置三组服务器server_web,server_blog,server_bbs

##################backendserver_web####################

backendserver_web

       modehttp#http的7层模式

       balanceroundrobin#负载均衡的方式,roundrobin平均方式

       cookieSERVERID#允许插入serverid到cookie中,serverid后面可以定义

       optionhttpchkGET/index.html#心跳检测的文件

       serverweb1192.168.16.2:

80cookieweb1checkinter1500rise3fall3weight1

       #服务器定义,cookie1表示serverid为web1,checkinter1500是检测心跳频率rise3是3次正确认为服务器可用,

       #fall3是3次失败认为服务器不可用,weight代表权重

       serverweb2192.168.16.3:

80cookieweb2checkinter1500rise3fall3weight2

       #服务器定义,cookie1表示serverid为web2,checkinter1500是检测心跳频率rise3是3次正确认为服务器可用,

       #fall3是3次失败认为服务器不可用,weight代表权重

 

###################backendserver_blog######################

backendserver_blog

       modehttp#http的7层模式

       balanceroundrobin#负载均衡的方式,roundrobin平均方式

       cookieSERVERID#允许插入serverid到cookie中,serverid后面可以定义

       optionhttpchkGET/index.html#心跳检测的文件

       serverblog1192.168.16.2:

80cookieblog1checkinter1500rise3fall3weight1

       #服务器定义,cookie1表示serverid为blog1,checkinter1500是检测心跳频率rise3是3次正确认为服务器可用,fall3是3次失败认为服务器不可用,weight代表权重

       serverblog2192.168.16.3:

80cookieblog2checkinter1500rise3fall3weight2

      #服务器定义,cookie1表示serverid为blog2,checkinter1500是检测心跳频率rise3是3次正确认为服务器可用,fall3是3次失败认为服务器不可用,weight代表权重

 

##################backendserver_bbs########################

 

backendserver_bbs

       modehttp#http的7层模式

       balanceroundrobin#负载均衡的方式,roundrobin平均方式

       cookieSERVERID#允许插入serverid到cookie中,serverid后面可以定义

       optionhttpchkGET/index.html#心跳检测的文件

       serverbbs1192.168.16.2:

80cookiebbs1checkinter1500rise3fall3weight1

       #服务器定义,cookie1表示serverid为bbs1,checkinter1500是检测心跳频率rise3是3次正确认为服务器

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2