HAproxy centos7安装配置

news/2024/7/7 10:29:27 标签: 开发工具, 运维, 操作系统

1. haproxy 官网

       http://www.haproxy.org/#doc1.8

2. 最新稳定版下载:

     http://www.haproxy.org/download/1.8/src/haproxy-1.8.14.tar.gz

3. 安装

     tar -zxvf  haproxy-1.8.14.tar.gz

     cd haproxy-1.8.14

     uname -r  查看内核版本

    cat README 可以查看安装说明,系统版本支持等参数

    

   

         make TARGET=linux2628 PREFIX=/usr/local/haproxy     #指定操作系统内核类型和安装的路径。也可以直接修改Makefile配置文件中这两个变量的值。如下:

        vim Makefile

       

     

      make install PREFIX=/usr/local/haproxy

 

    

    vim /usr/local/haproxy/etc/haproxy.cfg      #手动创建配置文件

    

关于负载均衡算法

    #source 根据请求源IP

    #static-rr 根据权重

    #leastconn 最少连接者先处理

    #uri 根据请求的uri

    #url_param 根据请求的url参数

    #rdp-cookie 据据cookie(name)来锁定并哈希每一次请求

    #hdr(name) 根据HTTP请求头来锁定每一次HTTP请求

    #roundrobin 轮询方式

 

使用nobody用户运行haproxy

# id nobody

uid=99(nobody) gid=99(nobody) groups=99(nobody)   #id 为99

 

复制haproxy启动脚本,到/etc/init.d下

# cp ./haproxy-1.7.9/examples/haproxy.init  /etc/init.d/haproxy

# chmod 755 /etc/init.d/haproxy

# vim /etc/init.d/haproxy   #修改后的脚本

#!/bin/sh

# chkconfig: - 85 15

# description: HA-Proxy server

# processname: haproxy

# config: /usr/local/haproxy/etc/haproxy.cfg

# pidfile: /usr/local/haproxy/run/haproxy.pid

 

# 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=`haproxy`

 

BIN=/usr/sbin/haproxy

 

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

[ -f $CFG ] || exit 1

 

PIDFILE=/usr/local/haproxy/run/haproxy.pid

LOCKFILE=/usr/local/haproxy/run/haproxy

 

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文件到/usr/sbin下

因为上面的haproxy.init启动脚本默认会去/usr/sbin下找

#cp /usr/local/haproxy/sbin/haproxy  /usr/sbin/

创建目录和权限

# mkdir -p /usr/local/haproxy/run

# chown nobody /usr/local/haproxy/ -R

 

配置日志收集

# vim /etc/rsyslog.conf    #打开以下两行的注释,不打开收不到日志

$ModLoad imudp            #取消注释

$UDPServerRun 514          #取消注释

local7.*          /var/log/boot.log       #下面添加两行

local3.*          /var/log/haproxy.log

local0.*          /var/log/haproxy.log

# systemctl  restart  rsyslog

 

3. 启动和停止服务

特殊启动方法1

# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.cfg

查看状态:

# ps -axu | grep haproxy

nobody    3871  0.0  0.0  12228  1036 ?        Ss   21:53   0:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.cfg

 

# netstat -antup | grep 80

tcp        0      0 0.0.0.0:80     0.0.0.0:*        LISTEN      3871/haproxy       

 

##停止

# killall haproxy   #没有killall命令?安装yum -y install psmisc

 

HAproxy脚本启动方法2

# /etc/init.d/haproxy start  或 systemctl  restart  haproxy

 

 

 

    

转载于:https://www.cnblogs.com/8341-jack/p/9871446.html


http://www.niftyadmin.cn/n/683152.html

相关文章

ubuntu 16.04安装windows 7虚拟机

安装virtualbox sudo apt-get install virtualbox使用IOS文件安装Windows。 (1)在高级选项下可以自定义分配的硬盘大小。 (2)建立好运行环境之后,把IOS文件放入模拟的驱动盘,点击启动,即可自…

block 内部结构分解

Oracle block 的详细物理结构图: 本文主要说明oracle block 的物理结构,它是oracle 的最小存储单元,由多个os 数据块组成。主要由三个逻辑层组成(通过c 语言描绘的结构,如下图一所示):the ca…

深入分析Spring 与 Spring MVC容器

Spring Framework本身没有Web功能,Spring MVC使用WebApplicationContext类扩展ApplicationContext,使得拥有web功能。那么,Spring MVC是如何在web环境中创建IoC容器呢?web环境中的IoC容器的结构又是什么结构呢?web环境…

内存管理--你的数据放在哪里

未初始化的全局变量(.bss) Bss段用来存放那些没有初始化和初始化为0的全局变量。此种类型只占运行时的内存空间,而不占用code代码的文件空间。作为全局变量,在整个程序的运行周期内,bss数据是一直存在的。初始化过的全…

oracle一个事务的完整流程

服务进程如何处理用户进程的请求服务器进程在完成用户进程的请求过程中,主要完成如下7个任务:0.sql语句的解析1.数据块的读入db buffer2.记日志3.为事务建立回滚段4.本事务修改数据块5.放入dirty list6.用户commit或rollback 0.sql语句的解析下面要讲or…

【python3的进阶之路二】因特网客户端编程 实战

一、生成电子邮件 电子邮件消息不仅包含纯文本,还有附件、文本中的格式等,这种较长的消息由多个部分组成。比如消息中由纯文本的部分,可能还有对应的HTML部分,这部分针对使用web浏览器作为邮件客户端的情形,除此之外还…

ubuntu 16.04安装go语言并配置VSCode使用环境

一、go语言安装 1、下载安装文件 由于go语言为goole开发,官方网站被墙,我们可以到国内镜像网站进行下载。 https://www.golangtc.com/download 本次安装使用源码为:go1.9.2.linux-amd64.tar.gz 2、将安装文件解压到指定目录 $sudo tar …

创建高性能表

创建高性能表 在我们为应用设计数据库的时候,首先要确认我们的数据库是用于OLTP,还是用于DSS,还是用OLTP和DSS的混合。 这样就确定了大方向 OLTP(on-line transaction processing):是为处理大量并发小事务设计的 DSS(…