HAProxy1.8.20版本编译安装

HAProxy1.8.20版本编译安装

一、官网下载版本并编译安装

[[email protected] haproxy]# cd /usr/local/src/ #此目录下一般放自己编译的源码
[[email protected] src]# yum install gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl  openssl-devel systemd-devel net-tools vim iotop bc  zip unzip zlib-devel lrzsz tree screen lsof tcpdump wget ntpdate
#安装基础依赖包,必须安装system-devel,如果不安装会报错
[[email protected] src]# ll
-rw-r--r--  1 root root 2083917 Jun  2 09:08 haproxy-1.8.20.tar.gz #安装包软件
[[email protected] src]# tar xvf haproxy-1.8.20.tar.gz #解压
[[email protected] src]# cd haproxy-1.8.20/
[[email protected] haproxy-1.8.20]# ll
total 8724
-rw-rw-r--  1 root root  513114 Apr 25 21:59 CHANGELOG
drwxrwxr-x 18 root root     273 Apr 25 21:59 contrib
-rw-rw-r--  1 root root   41508 Apr 25 21:59 CONTRIBUTING
drwxrwxr-x  5 root root    4096 Apr 25 21:59 doc
drwxrwxr-x  2 root root    4096 Jun  4 02:55 ebtree
drwxrwxr-x  3 root root    4096 Apr 25 21:59 examples
-rwxr-xr-x  1 root root 8259352 Jun  4 02:56 haproxy #可执行的文件
drwxrwxr-x  6 root root      60 Apr 25 21:59 include
-rw-rw-r--  1 root root    2029 Apr 25 21:59 LICENSE
-rw-rw-r--  1 root root    3087 Apr 25 21:59 MAINTAINERS
-rw-rw-r--  1 root root   37713 Apr 25 21:59 Makefile
-rw-rw-r--  1 root root   15355 Apr 25 21:59 README #读一下安装说明
drwxrwxr-x  5 root root      50 Apr 25 21:59 reg-tests
-rw-rw-r--  1 root root    2713 Apr 25 21:59 ROADMAP
drwxrwxr-x  2 root root     101 Apr 25 21:59 scripts
drwxrwxr-x  2 root root    8192 Jun  4 02:56 src
-rw-rw-r--  1 root root      14 Apr 25 21:59 SUBVERS
drwxrwxr-x  2 root root    4096 Apr 25 21:59 tests
-rw-rw-r--  1 root root      24 Apr 25 21:59 VERDATE
-rw-rw-r--  1 root root       7 Apr 25 21:59 VERSION
[[email protected] haproxy-1.8.20]# cat README
[[email protected] haproxy-1.8.20]# make ARCH=x86_64 TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1
[[email protected] haproxy-1.8.20]# make install PREFIX=/usr/local/haproxy
[[email protected] haproxy-1.8.20]# cp haproxy /usr/sbin  

haproxy主程序:/usr/sbin/haproxy

二、准备启动脚本

[[email protected]-centos7 haproxy-1.8.20]# vim /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target  

[Service]
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID  

[Install]
WantedBy=multi-user.target  

haproxy启动文件:/usr/lib/systemd/system/haproxy.service

三、定义haproxy配置文件

[[email protected] haproxy-1.8.20]# mkdir /etc/haproxy
[[email protected] haproxy-1.8.20]# cd /etc/haproxy/
[[email protected] haproxy]# vim haproxy.cfg haproxy配置文件编写
global #全局配置段 进程及安全相关的参数配置
maxconn 100000  #每个haproxy进程的最大并发连接数
chroot /usr/local/haproxy #锁定运行目录为/usr/local/haproxy
#stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin #socket文件
uid 99
gid 99 #运行haproxy的用户身份,默认的是99,nobody用户
daemon #守护进程
nbproc 2 #开启的haproxy进程数,与CPU保持一致
nbthread #指定每个haproxy进程开启的线程数,默认为每个进程一个线程(只在新版本支持1.8及以上)
cpu-map 1 0  #绑定第一个haproxy 进程至指定的CPU的第0个核心上
cpu-map 2 1
#cpu-map 3 2
#cpu-map 4 3
pidfile /usr/local/haproxy/run/haproxy.pid  #指定pid文件路径
log 127.0.0.1 local3 info
maxconnrate #每个进程每秒最大连接数
maxsslconn  #SSL每个haproxy进程ssl最大连接数
spread-checks   #后端server状态check随机提前或延迟百分比时间,建议2-5(20%-50%)之间  

defaults
option redispatch   #当server Id对应的服务器挂掉后,强制定向到其他健康的服务器
option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
option http-keep-alive #开启会话保持
option  forwardfor #开启IP透传
maxconn 100000 #每个haproxy进程的最大并发连接数
mode http #指定负载协议类型 后边的片段不指定就用全局默认的类型
timeout connect 300000ms  #转发客户端请求到后端server的最长连接时间(TCP之前)
timeout client  300000ms #与客户端的最长空闲时间
timeout server  300000ms 转发客户端请求到后端服务端的超时超时时长(TCP之后)

listen stats
 mode http
 bind 0.0.0.0:9999
 stats enable
 log global
 stats uri     /haproxy-status
 stats auth    haadmin:q1w2e3r4ys

listen  web_port #可以使用listen替换frontend和backend的配置方式
 bind 0.0.0.0:8080
 mode http
 log global
 server web1  127.0.0.1:8080  check inter 3000 fall 2 rise 5

frontend web #前端servername,类似于Nginx的一个虚拟主机 server
 bind 192.168.28.18:80  #bind指定HAProxy的监听地址,可以是IPV4或IPV6,可以同时监听多个IP或端口,监听多个地址时中间用逗号分隔,同时也适用于listen片段中;
 use_backend web_host #use_backend调用的后端服务器组名称,要保证前后的一致性

backend web_host #后端服务器组,等于nginx的upstream
 server web1 192.168.28.7:80 #定义后端真正的服务器
# server web2 192.168.28.38:80  #没有启用这组后端服务器

haproxy主配置文件:/etc/haproxy/haproxy.cfg
注意:以上name字段只能使用 - _ . : 并且严格区分大小写;
listen <name> 将frontend和backend合并在一起配置;

四、启动服务

[[email protected] haproxy]# systemctl start haproxy
[[email protected] haproxy]# ss -ntl
State      Recv-Q Send-Q      Local Address:Port                     Peer Address:Port
LISTEN     0      128                     *:9999                                *:*
LISTEN     0      128                     *:111                                 *:*
LISTEN     0      128         192.168.28.18:80                                  *:*
#监听的端口
LISTEN     0      128                     *:8080                                *:*
LISTEN     0      128                     *:22                                  *:*
LISTEN     0      100             127.0.0.1:25                                  *:*
LISTEN     0      128                    :::111                                :::*
LISTEN     0      128                    :::22                                 :::*
LISTEN     0      100                   ::1:25                                 :::*

以上完成了整个haproxy的安装编译

五、验证haproxy

[[email protected] ~]# ps -ef |grep haproxy
root       7511      1  0 03:35 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxyhaproxy.cfg -p /run/haproxy.pid
nobody     7514   7511  0 03:35 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxyhaproxy.cfg -p /run/haproxy.pid
nobody     7515   7511  0 03:35 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxyhaproxy.cfg -p /run/haproxy.pid
root       7751   6740  0 06:48 pts/0    00:00:00 grep --color=auto haproxy  

六、测试haproxy的配置是否成功

在192.168.28.7的机器上进行测192.168.28.18的地址(测试时确保192.168.28.7主机安装了http并正常开启,在/var/www/html/index.html下有自己建立
的内容能正常访问到就测试成功)

原文地址:https://blog.51cto.com/14132648/2404854

时间: 2024-11-05 13:37:36

HAProxy1.8.20版本编译安装的相关文章

Linux下指定版本编译安装LAMP

说明: 操作系统:CentOS 6.5 64位 需求: 编译安装LAMP运行环境 各软件版本如下: MySQL:mysql-5.1.73 Apache:httpd-2.2.31 PHP:php-5.2.17 具体操作: 准备篇 一.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables #编辑防火墙配置文件 # Firewall configuration written by system-config-firewall # Manual customiz

erlang 20.0版本编译安装

1.基础软件包安装 系统版本[[email protected] erlang]# cat /etc/redhat-release CentOS release 6.6 (Final) yum groupinstall "Base" "Development Tools" "Perl Support" 装不上报错 多装两遍 一定要装上,安装完组包从新启动下虚拟机 yum -y install make gcc gcc-c++ kernel-dev

(一)MySQL-5.6.20的编译安装

Mysql有通用二进制包安装,源码包编译安装或者利用YUM等包管理工具进行安装等方法.在这里,我们将使用源码包编译安装. 一.安装环境 Centos6.5 内核 2.6.32-431.el6.i686 mysql-5.6.20 二.安装前准备 编译安装前需要准备好编译环境,使用源码安装需要CMAKE(http://www.cmake.org) ,make,c++编译器.    yum install -y cmake make gcc 然后是获取mysql的源码包 http://dev.mysq

mysql-5.5.20预编译安装

1.MYSQL数据库概念 1)MYSQL是一款关系型数据库系统,数据之间有互相联系,互相的关联和调用的. 2)MYSQL数据用于存储:WEB网站用户名和密码等 3)MYSQL存储数据库是通过二维表格形式 2.MYSQL数据库安装和配置 1)DBA,数据库管理员,DBA挑选MYSQL发行版本,首选源码编译安装,DBA的工作维护MYSQL正常稳定的运行,优化MYSQL内容(SQL语句),数据库备份和恢复,让mysql高效稳定的工作,保障业务系统的稳定. 2)MYSQL数据库安装使用mysql-5.5

线上服务器PHP版本编译安装升级全记录

1.将原来的PHP重命名一下 cd /usr/local/bin/ mv php php.2.9 2.安装依赖 yum install gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel 报错,centos版本太老了,5.5,yu

Python多版本编译安装&amp;修改Python默认启动版本

deepin\Ubuntu环境. 需要多个版本Python解释器. 依次下载所需要版本源码包, 解压缩. root环境 sudo -i ## 安装环境依赖 apt install -y make build-essential libssl-dev zlib1g-dev apt install -y libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm apt install -y libncurses5-dev libncursesw

centos7 编译安装 haproxy1.8.20

当前系统信息: [[email protected] ~]# cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;3

CentOS 6.9 基于clang3.4 编译安装mariadb-10.2.12

系统平台: CentOS release 6.9 (Final) 内核 2.6.32-696.el6.x86_64 1.去官网下载适合的源码包 http://mariadb.org/ mariadb-10.2.12.tar.gz 检查系统内是否安装了数据库. #rpm -qa|grep MariaDB #rpm -qa|grep mysql cmake最新版本需要c++11支持,gcc4.8以下并未包含,而Centos 6.9的版本如下 #rpm -qa|grep gcc gcc-4.4.7-1

CentOS 6.9 基于gcc4.8.5编译安装mariadb-10.2.12

系统平台: CentOS release 6.9 (Final) 内核 2.6.32-696.el6.x86_64 1.去官网下载适合的源码包 http://mariadb.org/ mariadb-10.2.12.tar.gz 检查系统内是否安装了数据库. #rpm -qa|grep MariaDB #rpm -qa|grep mysql mariadb-10.2.12需要c++11特性支持,gcc4.8以下并未包含,而Centos 6.9的gcc版本为4.4.7 但在编译程序或运行程序时需要