HAproxy的安装配置

本文尚未完结,待完善,估计今晚之前可以发出完整版

一、安装HAproxy
官方给出的文档如下(HAproxy1.7版本):
To build haproxy, you will need :
-GNU make
-GCC between 2.95 and 4.8.
-GNU ld

Also, you might want to build with libpcre support
If your system supports PCRE (Perl Compatible Regular Expressions), then you
really should build with libpcre which is between 2 and 10 times faster than
other libc implementations.
- USE_PCRE=1

It is also possible to include native support for zlib to benefit from HTTP
compression.
USE_ZLIB=1

查看Linux的内核版本:

1.uname -a
2.cat /proc/version

考虑到笔者虚拟机环境
步骤如下:

make TARGET=linux2628 USE_OPENSSL=1 USE_PCRE=1 USE_ZLIB=1 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy

二、编写HAproxy启动脚本

vi /etc/init.d/haproxy
#!/bin/sh
# chkconfig 2345 on
# description: HAProxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments.
if [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 0
fi

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
config="/etc/haproxy.cfg"
exec="/usr/local/haproxy/sbin/haproxy"
PID="/var/run/haproxy.pid"
[ -f $config ] || exit 1
RETVAL=0

start() {
  daemon $exec -c -q -f $config
  if [ $? -ne 0 ]; then
    echo "Errors found in configuration file."
    return 1
  fi
  echo -n "Starting HAproxy: "
  $exec -D -f $config -p $PID
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch /var/lock/subsys/haproxy
  return $RETVAL
}
stop() {
  echo -n "Shutting down HAproxy: "
  killproc haproxy -USR1
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/haproxy
  [ $RETVAL -eq 0 ] && rm -f $PID
  return $RETVAL
}
restart() {
  $exec -c -q -f $config
  if [ $? -ne 0 ]; then
    echo "Errors found in configuration file, check it with ‘haproxy check‘."
    return 1
  fi
  stop
  start
}
rhstatus() {
  status haproxy
}
# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
restart)
  restart
    ;;
status)
  rhstatus
    ;;
*)
  echo $"Usage: haproxy {start|stop|restart|status}"
  RETVAL=1
esac
exit $RETVAL

亲测可用

三、配置HAproxy
HAproxy主要参数包括:
global 全局参数配置
defaults 为所有其他配置段提供默认参数
listen 关联“前端”和“后端”,定义了完整的代理,只对TCP流量有用
frontend 用于定义一系列监听的套接字,可与接收客户端请求并与之连接
backend 用于定义一系列“后端服务器”,代理会将对应客户端的请求转发到这些服务器

官方文档如下:

A "defaults" section sets default parameters for all other sections following
its declaration. Those default parameters are reset by the next "defaults"
section. See below for the list of parameters which can be set in a "defaults"
section. The name is optional but its use is encouraged for better readability.

A "frontend" section describes a set of listening sockets accepting client
connections.

A "backend" section describes a set of servers to which the proxy will connect
to forward incoming connections.

A "listen" section defines a complete proxy with its frontend and backend
parts combined in one section. It is generally useful for TCP-only traffic.

配置文件语法为以这几个主要参数开头,便可以配置

参考配置如下:

vi /etc/haproxy.cfg
global
  log 127.0.0.1 local2
  chroot /var/lib/haproxy
  pidfile /var/run/haproxy.pid
  maxconn 4000
  user haproxy
  group haproxy
  daemon

  stats socket /var/lib/haproxy/stats
  #turn on stats unix socket
default
  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 10s
  timeout client 1m
  timeout server 1m
  timeout http-keep-alive 10s
  timeout check 10s
  maxconn 3000

frontend main
  bind *:80

  ##开启stats界面
  stats enable
  stats hide-version
  stats uri /haproxyadmin

  default_backend dynamic
  #默认backend为dynamic
  acl url_static path_end -i .jpg
  #访问控制列表, 匹配结尾为.jpg的资源
  use_backend static if url_static
  #如果结尾为.jpg, 则使用backend为static

backend dynamic
  balance roundrobin
  #这里使用roundrobin算法
  server dynamic 172.16.1.5:80 check
backend static
  balance uri
  #这里使用uri算法
  server static 172.16.1.4:80 check

这个代码是用来实现HAproxy的动静分离的

时间: 2024-10-20 09:27:40

HAproxy的安装配置的相关文章

CentOS6下Haproxy的安装配置

Haproxy 是一个开源的负载均衡和反向代理软件,其提供了高可用的网络服务.其一般是应用于web服务,但同时也能为SMTP和终端服务等提供可靠的支持. 1.下载安装haproxy wget ftp://195.220.108.108/linux/centos/6.8/os/x86_64/Packages/haproxy-1.5.4-3.el6.x86_64.rpm --下载 rpm -ivh haproxy-1.5.4-3.el6.x86_64.rpm -安装 2.配置Haproxy cp /

haproxy+keepalived安装配置

1 环境准备 1.1 主机规划 服务器说明 IP地址 主机名称规则 安装服务 haproxy主机1 10.0.0.41 haproxy01 Haproxy.Nginx.keepalived haproxy主机2 10.0.0.42 haproxy01 Haproxy.Nginx.keepalived 10.0.0.43 虚拟IP地址VIP 1.2 hosts解析文件 10.0.0.41 dns01 10.0.0.42 dns02 1.3 操作系统版本 CentOS7.3 [root@haprox

haproxy笔记之一:Haproxy基本安装配置(反向代理,类似Nginx,可以代理tcp的连接,不只是http)(注意iptables和selinux的问题)

1.安装haproxy yum -y install haproxy 2.配置文件 # 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 loghost local0 info maxconn 4096 chroot /usr/share/haproxy uid 99 gid 99 daemon #debug #quiet d

Centos安装配置HAProxy+Nginx环境

在测试环境安装了一下Nginx(作为http服务器)和HAProxy(反向代理),并配置HAProxy的日志输出到/var/log/haproxy.log,笔记一下. 需要说明的是,这里仅涉及基本的安装.配置方法,并不涉及生产环境中的具体用法. 一.安装Nginx 1.准备环境 yum install -y gcc      #一般都有 yum install -y gcc-c++  #非必须 yum install -y pcre pcre-devel  #正则匹配 yum install -

高负载均衡学习haproxy之安装与配置

http://www.52codes.net/article/3117.html 1.1.haproxy原理 haproxy提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. haproxy特别适用于那些负载特别大的web站点,这些站点通常又需要会话保持或七层处理.haproxy运行在时下的硬件上,完全可以支持数以万计的并发连接,并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器

haproxy的安装与配置

haproxy是一款提供高可用,负载均衡以及基于TCP和HTTP应用的轻量级代理.其支持虚拟主机,并且快速高效.haproxy特别适用于负载大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. (以上简介出自百度百科) 并且可以通过设置haproxy实现页面的动静分离. 我们用三台虚拟机做实验,一台做前端haproxy,另

负载均衡-haproxy安装配置

HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上.    haproxy 配置中分成五部分内容,分别如下:1.global:参数是进程级的,通常是和操作系统相关.这些

理解 OpenStack Swift (1):OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置

本系列文章着重学习和研究OpenStack Swift,包括环境搭建.原理.架构.监控和性能等. (1)OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置 (2)Swift 原理和架构 (3)Swift 监控 (4)Swift 性能 要实现的系统的效果图: 特点: 使用三个对等物理节点,每个节点上部署所有Swift 服务 使用开源的 UCARP 控制一个 VIP,它会被绑定到三个物理网卡中的一个. 使用开源的 HAProxy 做负载均衡 开启 Swift

haproxy安装配置

1.安装 wget http://download.chinaunix.net/download.php?id=25784&ResourceID=12508 tar -zxvf haproxy-1.3.15.10.tar.gz cd haproxy-1.3.15.10 make TARGET=linux26 PREFIX=/usr/local/haproxy  (#将haproxy安装到/usr/local/haproxy) make install PREFIX=/usr/local/hapr