Haproxy的安装以及启动脚本的调试

1 )源代码安装haproxy

[[email protected] src]# tar xf haproxy-1.6.4.tar.gz

[[email protected] src]# cd haproxy-1.6.4

[[email protected] haproxy-1.6.4]# make TARGET=linux26 PREFIX=/usr/local/haproxy

[[email protected] haproxy-1.6.4]# echo $?

0

[[email protected] haproxy-1.6.4]# make install PREFIX=/usr/local/haproxy

[[email protected] haproxy-1.6.4]# mkdir  /usr/local/haproxy/conf

[[email protected] haproxy-1.6.4]# ls

CHANGELOG  CONTRIBUTING  ebtree    haproxy                  include  MAINTAINERS  README   src      tests    VERSION

contrib    doc           examples  haproxy-systemd-wrapper  LICENSE  Makefile     ROADMAP  SUBVERS  VERDATE

[[email protected] haproxy-1.6.4]# cp examples/option-http_proxy.cfg /usr/local/haproxy/conf/haproxy.cfg

2)haproxy的启动脚本配置

由于我的安装包是下载在/usr/local/src下的,我们查看下解压后的haproxy的文件

[[email protected] examples]# pwd

/usr/local/src/haproxy-1.6.4/examples

[[email protected] examples]# ls

acl-content-sw.cfg  check.conf             debug2html  haproxy.init  init.haproxy           ssl.cfg

auth.cfg            content-sw-sample.cfg  debugfind   haproxy.spec  option-http_proxy.cfg  stats_haproxy.sh

check               debug2ansi             errorfiles  haproxy.vim   seamless_reload.txt    transparent_proxy.cfg

如上,我们可以看到一个名为haproxy.init文件

简单查看下haproxy.init的内容

[[email protected] examples]# cat haproxy.init

#!/bin/sh
#
# chkconfig: - 85 15
# description: HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited #              for high availability environments.
# processname: haproxy
# config: /etc/haproxy/haproxy.cfg
# pidfile: /var/run/haproxy.pid
# Script Author: Simon Matter <[email protected]>
# Version: 2004060600
# Source function library.
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
# This is our service name
BASENAME=`basename $0`
if [ -L $0 ]; then
  BASENAME=`find $0 -name $BASENAME -printf %l`
  BASENAME=`basename $BASENAME`
fi
BIN=/usr/sbin/$BASENAME
CFG=/etc/$BASENAME/$BASENAME.cfg
[ -f $CFG ] || exit 1
PIDFILE=/var/run/$BASENAME.pid
LOCKFILE=/var/lock/subsys/$BASENAME
RETVAL=0
start() {
  quiet_check
  if [ $? -ne 0 ]; then
    echo "Errors found in configuration file, check it with ‘$BASENAME check‘."
    return 1
  fi
  echo -n "Starting $BASENAME: "
  daemon $BIN -D -f $CFG -p $PIDFILE
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch $LOCKFILE
  return $RETVAL
}
stop() {
  echo -n "Shutting down $BASENAME: "
  killproc $BASENAME -USR1
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && rm -f $LOCKFILE
  [ $RETVAL -eq 0 ] && rm -f $PIDFILE
  return $RETVAL
}
restart() {
  quiet_check
  if [ $? -ne 0 ]; then
    echo "Errors found in configuration file, check it with ‘$BASENAME check‘."
    return 1
  fi
  stop
  start
}
reload() {
  if ! [ -s $PIDFILE ]; then
    return 0
  fi
  quiet_check
  if [ $? -ne 0 ]; then
    echo "Errors found in configuration file, check it with ‘$BASENAME check‘."
    return 1
  fi
  $BIN -D -f $CFG -p $PIDFILE -sf $(cat $PIDFILE)
}
check() {
  $BIN -c -q -V -f $CFG
}
quiet_check() {
  $BIN -c -q -f $CFG
}
rhstatus() {
  status $BASENAME
}
condrestart() {
  [ -e $LOCKFILE ] && restart || :
}
# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  reload)
    reload
    ;;
  condrestart)
    condrestart
    ;;
  status)
    rhstatus
    ;;
  check)
    check
    ;;
  *)
    echo $"Usage: $BASENAME {start|stop|restart|reload|condrestart|status|check}"
    exit 1
esac
 
exit $?

我们发现,稍微调整下,就是一个完整的haproxy的启动脚本,所以偷下懒,直接修改两个位置:

BIN=/usr/local/haproxy/sbin/haproxy

# haproxy命令所在的位置

CFG=/usr/local/haproxy/conf/haproxy.cfg

# haproxy.cfg为haproxy的配置文件

修改完成后,将修改后的haproxy.init拷贝到/etc/init.d/目录下

[[email protected] examples]# cp /usr/local/src/haproxy-1.6.4/examples/haproxy.init /etc/init.d/
[[email protected] examples]# mv /etc/init.d/haproxy.init /etc/init.d/haproxy
[[email protected] examples]# chmod +x /etc/init.d/haproxy
[[email protected] examples]# /etc/init.d/haproxy 
Usage: haproxy {start|stop|restart|reload|condrestart|status|check}
简单的测试下:
[[email protected] examples]# /etc/init.d/haproxy status
haproxy (pid  54309) 正在运行...
[[email protected] examples]# /etc/init.d/haproxy stop
Shutting down haproxy:                                     [确定]
[[email protected] examples]# /etc/init.d/haproxy status
haproxy 已停
[[email protected] examples]# /etc/init.d/haproxy start
Starting haproxy:                                          [确定]
[[email protected] examples]# /etc/init.d/haproxy reload
[[email protected] examples]# echo $?
0
[[email protected] examples]# /etc/init.d/haproxy condrestart
Shutting down haproxy:                                     [确定]
Starting haproxy:                                          [确定]
[[email protected] examples]# /etc/init.d/haproxy check
Configuration file is valid
到此,haproxy的安装与脚本的配置就已经完成
时间: 2024-11-10 08:18:38

Haproxy的安装以及启动脚本的调试的相关文章

windows openresty 死磕:安装和启动脚本

疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 前言 Crazy-SpringCloud 微服务脚手架 &视频介绍: Crazy-SpringCloud 微服务脚手架,是为 Java 微服务开发 入门者 准备的 学习和开发脚手架.并配有一系列的使用教程和视频,大致如下: 高并发 环境搭建 图文教程和演示视频,陆续上线: 中间件 链接地址 Linux Redis

redis-2.8.19.tar.gz 安装和启动脚本

安装部分: #!/bin/bash cd /usr/local/src#wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gztar    zxvf  tcl8.6.1-src.tar.gz  -C  /usr/local/cd     cd /usr/local/tcl8.6.1/unix/./configuremakemake install cd /usr/local/srctar  zxvf redis-2.8.19.t

nginx编译安装服务启动脚本示例

#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig:   - 85 15 # description:  Nginx is an HTTP(S) server, HTTP(S) reverse \ #               proxy and IMAP/POP3 proxy server # processname: nginx # config:      /etc/nginx

HAProxy服务启动脚本

HAProxy是一个开源的.高性能的.基于TCP(第四层)和HTTP(第七层)应用的负载均衡软件,借助HAProxy可以快速.可靠地提供基于TCP和HTTP应用的负载均衡解决方案. 显著优点: 可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲美: 最高可以同时维护40 000~50 000个并发连接,单位时间处理的最大请求数为20 000个,最大数据处理能力可达10Gbps 支持多于8种负载均衡算法,同时也支持session(会话)保持. 支持虚拟主机功能,这样实现web负载均衡更加灵活

mongodb安装脚本/启动脚本/配置文件

安装脚本 #!/bin/bash  #author: QingFeng #qq: 530035210 #blog: http://my.oschina.net/pwd/blog  #自动安装mongodb和初始化配置 #缺省的配置如下   logdir=/data/log/shell          #日志路径 log=$logdir/shell.log            #日志文件  is_font=1                #终端是否打印日志: 1打印 0不打印  is_log

Nginx的编译安装及服务启动脚本

1.解决依赖关系 编译安装nginx需要事先需要安装开发包组"Development Tools"和 "Development Libraries".同时,还需要专门安装pcre-devel包:# yum -y install pcre-devel 2.添加系统用户,实现与之运行nginx的服务进程 groupadd -r nginx useradd -r -g nginx nginx id nginx    查看新建的用户id 3.下载源码包上传编译安装 (www

【AD】【组策略】利用启动脚本为域普通用户安装字体的方法

默认情况下安装字体需要管理员权限.如果只是把字体文件复制到%systemroot%\fonts内,是无法被系统认定为字体已经安装的.同时需要在以下位置的注册表写入一个项.hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts,具体格式你可以自己查看.那么知道怎么算正确安装脚本后.就可以使用启动脚本来做了.因为启动脚本用的是nt authority\system权限. 安装前字体文件夹内默认如下:注册表内如下: 脚本执行完安装后如下:注册表:

nginx 源码编译安装并编写服务启动脚本

1. 使用xshell将nginx源码包上传到server 2. 安装依赖的软件包工具 zlib-devel?? pcre-devel?? gcc? gcc-c++ yum -y install zlib-devel pcere-devel gcc gcc-c++ 验证一下: 3. 指定nginx的运行用户 (创建nginx用户不使其登录系统.-M不创建宿主目录) [[email protected] ~]# useradd -s /sbin/nologin -M nginx 4. 编译安装ng

理解 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