HaProxy安装和常用命令.md

安装haproxy

对于 haproxy 安装,网上有大量的资源可以参考,最常见的是使用 yum 和 编译安装两种方式。

yum 安装 haproxy

CentOS自带了haproxy,但可能版本比较老。可以在IUS源上找到稳定版的haproxy。

主要步骤如下:

(1)配置yum源

cat <<eof>/etc/yum.repos.d/ius-7.repo
[ius]
name = IUS for Enterprise Linux 7 - $basearch
baseurl = https://repo.ius.io/7/$basearch/
enabled = 1
repo_gpgcheck = 0
gpgcheck = 1
gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7
[ius-debuginfo]
name = IUS for Enterprise Linux 7 - $basearch - Debug
baseurl = https://repo.ius.io/7/$basearch/debug/
enabled = 0
repo_gpgcheck = 0
gpgcheck = 1
gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7
[ius-source]
name = IUS for Enterprise Linux 7 - Source
baseurl = https://repo.ius.io/7/src/
enabled = 0
repo_gpgcheck = 0
gpgcheck = 1
gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7
eof

(2)清理、更新和快速生成 yum 缓存

yum clean all
yum update
yum makecache fast

(3)查看下系统中haproxy版本有哪些

yum list|grep haproxy

(4)yum安装 haproxy18u

#这里安装 haproxy18u 

yum install haproxy18u -y

编译安装 haproxy

编译安装haproxy时,可以借助于pcre环境,该环境下编译时借助正则表达式分析编译速度会快很多,但是没有该环境也可以安装。

主要步骤如下:

(1)安装 pcre pcre-devel

yum -y install pcre pcre-devel

(2)创建haproxy运行的用户和组

groupadd -r haproxy
useradd -g haproxy -M -s /sbin/nologin haproxy

(3)编译安装haproxy

#下载地址:
http://www.haproxy.org/
#解压:
tar zxf haproxy-1.8.23.tar.gz -C /usr/local
#编译安装:
cd /usr/local/haproxy-1.8.23
make TARGET=linux3100 ARCH=x86_64 PREFIX=/usr/local/haproxy USE_PCRE=1
make install PREFIX=/usr/local/haproxy

说明??:

make时需要使用TARGET指定内核及版本,可以通过uname -r来查看,版本如下:

- linux22     for Linux 2.2
- linux24     for Linux 2.4 and above (default)
- linux24e    for Linux 2.4 with support for a working epoll (> 0.21)
- linux26     for Linux 2.6 and above
- linux2628   for Linux 2.6.28, 3.x, and above (enables splice and tproxy)
- solaris     for Solaris 8 or 10 (others untested)
- freebsd     for FreeBSD 5 to 10 (others untested)
- netbsd      for NetBSD
- osx         for Mac OS/X
- openbsd     for OpenBSD 5.7 and above
- aix51       for AIX 5.1
- aix52       for AIX 5.2
- cygwin      for Cygwin
- haiku       for Haiku
- generic     for any other OS or version.
- custom      to manually adjust every setting

使用ARCH指定架构,不过ARCH选项可省。使用USE_PCRE=1表示使用PCRE环境编译,加快编译速度。

本文的操作系统内核版本为3.10.0,TARGET指定为 linux2628。我这边使用 linux3100 也没有报错~

编译安装完成后,只有3个目录:doc、share和sbin,sbin里面只有一个haproxy的主程序haproxy。

(4)管理haproxy服务

ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy
cd /usr/local/haproxy-1.8.23/examples
cp haproxy.init /etc/rc.d/init.d/haproxy
cd /etc/rc.d/init.d
chmod +x haproxy

(5)设置haproxy相关的配置文件

#创建配置目录
mkdir /usr/local/haproxy/conf
#创建主配置文件
touch /usr/local/haproxy/conf/haproxy.cfg
#创建启动脚本配置目录
mkdir /etc/haproxy/
#添加配置文件的软连接
ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg
#创建日志目录
mkdir /usr/local/haproxy/log
#创建日志文件
touch /usr/local/haproxy/log/haproxy.log
#添加软连接
ln -s /usr/local/haproxy/log/haproxy.log /var/log/haproxy.log
#拷贝错误页面
cp -r /usr/local/haproxy-1.8.23/examples/errorfiles/ /usr/local/haproxy/
#给错误页面添加软连接
ln -s /usr/local/haproxy/errorfiles /etc/haproxy/errorfiles

(6)配置haproxy.cfg参数

#编辑 haproxy.cfg 配置文件
vim /usr/local/haproxy/conf/haproxy.cfg    

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
 log 127.0.0.1 local2   ###[err warning info debug]
 chroot /usr/local/haproxy
 pidfile /var/run/haproxy.pid ###haproxy的pid存放路径,启动进程的用户必须有权限访问此文件
 maxconn 4000     ###最大连接数,默认4000
 user haproxy
 group haproxy
 daemon       ###创建1个进程进入deamon模式运行。此参数要求将运行模式设置为"daemon"

#---------------------------------------------------------------------
# common defaults that all the ‘listen‘ and ‘backend‘ sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
 mode http    ###默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
 log global   ###采用全局定义的日志
 option dontlognull  ###不记录健康检查的日志信息
 option httpclose  ###每次请求完毕后主动关闭http通道
 option httplog   ###日志类别http日志格式
 option forwardfor  ###如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip
 option redispatch  ###serverId对应的服务器挂掉后,强制定向到其他健康的服务器
 timeout connect 10000 #default 10 second timeout if a backend is not found
 timeout client 300000 ###客户端连接超时
 timeout server 300000 ###服务器连接超时
 maxconn  60000  ###最大连接数
 retries  3   ###3次连接失败就认为服务不可用,也可以通过后面设置
####################################################################
listen stats
  bind 0.0.0.0:1080   #监听端口
  stats refresh 30s   #统计页面自动刷新时间
  stats uri /stats   #统计页面url
  stats realm Haproxy Manager #统计页面密码框上提示文本
  stats auth admin:admin  #统计页面用户名和密码设置
  #stats hide-version   #隐藏统计页面上HAProxy的版本信息
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend main
 bind 0.0.0.0:80
 acl url_static path_beg -i /static /p_w_picpaths /javascript /stylesheets
 acl url_static path_end -i .jpg .gif .png .css .js

 use_backend static if url_static  ###满足策略要求,则响应策略定义的backend页面
 default_backend dynamic   ###不满足则响应backend的默认页面

#---------------------------------------------------------------------
# static backend for serving up p_w_picpaths, stylesheets and such
#---------------------------------------------------------------------

backend static
 balance  roundrobin     ###负载均衡模式轮询
 server  static 127.0.0.1:80 check ###后端服务器定义

backend dynamic
 balance roundrobin
 server   websrv1 192.168.180.9:80 check maxconn 2000
 server   websrv2 192.168.180.4:80 check maxconn 2000

#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------

errorfile 403 /etc/haproxy/errorfiles/403.http
errorfile 500 /etc/haproxy/errorfiles/500.http
errorfile 502 /etc/haproxy/errorfiles/502.http
errorfile 503 /etc/haproxy/errorfiles/503.http

(7)启动 haproxy 服务

#haproxy配置文件语法检查
haproxy -c -f /usr/local/haproxy/conf/haproxy.cfg
Configuration file is valid
#haproxy服务启动
systemctl start haproxy
#haproxy服务开机自启动
chkconfig --add haproxy
chkconfig haproxy on
chkconfig --list|grep haproxy

(8)设置haproxy日志

#编辑/etc/rsyslog.conf 取消注释:

$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
#添加:
local2.*                                                /var/log/haproxy.log          

说明??:

以上修改haproxy日志会同时写入到/var/log/haproxy.log/var/log/messages两个文件里,由于haproxy日志量很多所以只让其写入到/var/log/haproxy.log文件需要修改/etc/rsyslog.conf文件这个配置:

*.info;mail.none;authpriv.none;cron.none                /var/log/messages
更改为:
*.info;mail.none;authpriv.none;cron.none;local2.none               /var/log/messages      #这样只会写入到/var/log/haproxy.log

修改/etc/sysconfig/rsyslog

#修改”SYSLOGD_OPTIONS”参数
-c 2 使用兼容模式,默认是 -c 5;-r 开启远程日志;-m 0 标记时间戳,单位是分钟,0表示禁用该功能。
#完整内容如下
# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
#SYSLOGD_OPTIONS=""
SYSLOGD_OPTIONS="-c 2 -r -m 0"
#SYSLOGD_OPTIONS="-c 2 -r -m 0"
&~
#重新启动rsyslog服务
systemctl restart rsyslog.service

(9)测试

打开浏览器打开haproxy监控页面,192.168.246.168:1080/stats,账号:admin,密码:admin

查看 haproxy 的log:tail -f /var/log/haproxy.log

扩展

haproxy常用命令:

# 检查配置文件语法
haproxy -c -f /etc/haproxy/haproxy.cfg

# 以daemon模式启动,以systemd管理的daemon模式启动
haproxy -D -f /etc/haproxy/haproxy.cfg [-p /var/run/haproxy.pid]
haproxy -Ds -f /etc/haproxy/haproxy.cfg [-p /var/run/haproxy.pid]

# 启动调试功能,将显示所有连接和处理信息在屏幕
haproxy -d -f /etc/haproxy/haproxy.cfg

# restart。需要使用st选项指定pid列表
haproxy -f /etc/haproxy.cfg [-p /var/run/haproxy.pid] -st `cat /var/run/haproxy.pid`

# graceful restart,即reload。需要使用sf选项指定pid列表
haproxy -f /etc/haproxy.cfg [-p /var/run/haproxy.pid] -sf `cat /var/run/haproxy.pid`

# 显示haproxy编译和启动信息
haproxy -vv

参考文档

原文地址:https://blog.51cto.com/wutengfei/2467351

时间: 2024-11-01 21:01:45

HaProxy安装和常用命令.md的相关文章

ios开发环境配置及cordova安装与常用命令

一.ios开发环境配置 1.首先要有台Mac Book,如果有Mac Book,跳过步骤2.3.4,如果没有,执行步骤2.3.4: 2.下载并安装VMware Workstation,最好是下最新版本: 3.下载并安装unlock-all(VMware Workstation默认限制安装Mac虚拟机,需要安装此文件后解除限制); 4.下载Mac OS操作系统的镜像文件(需要是.ios文件)如果下载的是.dmg文件,需要用 anytoiso.exe工具转换成.ios文件,下载完成后在VMware

docker 的简介、安装以及常用命令

docker 的简介.安装以及常用命令 一.docker 是什么 docker 是一个开源的应用容器引擎,基于 go 语言,开发者可以打包他们的应用以及依赖到一个可移植的容器中,这个容器可以发布到任何装有 docker 软件的 linux 机器上. docker 有 4 个组成部分 docker 客户端(client) docker 守护进程(daemon) docker 镜像(image) docker 容器(container) 二.为什么要使用 docker (1) 快速部署. 上面说到了

kafka安装及常用命令

kafka是一个开源的分布式消息队列 他提供可靠的集群容错机制,并保证故障切换时的数据完整性. 无论从性能.可靠性.易用性都强过ActiveMQ(client的API感觉还是不如ActiveMQ好用,文档也没有更新到最新版) 下面简单记录一下安装步骤和常用命令. 1.安装 http://kafka.apache.org/documentation.html 下载压缩包并解压 可以解压到 /usr/local/kafka 2.配置 vim conf/server.properties #设置bro

git的安装和常用命令

1,下载安装方法 http://jingyan.baidu.com/article/020278117cbe921bcc9ce51c.html 2,常用的命令 原文地址: http://www.admin10000.com/document/5374.html Git基本常用命令如下: git pull --rebase origin master git pull origin master mkdir:         XX (创建一个空目录 XX指目录名) pwd:          显示

ubuntu14.04下svn版本管理系统的安装及常用命令的使用整理

ubuntu14.04下安装svn$sudo apt-get install subversion 执行这一步就安装完成了,在ubuntu先安装很方便 安装完成后,创建版本库目录,由于是本地环境,就在某个目录下建立一个目录,如果是真实环境,就是相当于服务器上的目录,由于本地,则就模拟出一个服务器上的一个版本库 $sudo mkdir -p /opt/subverdion/svn ###创建版本库目录$sudo svnadmin create /opt/subversion/svn ###创建版本

windows下的Nodejs及npm的安装、常用命令,Nodejs开发环境配置

第一步:下载Nodejs并安装 官方下载地址:https://nodejs.org/en/,我选择的是长期支持版本v4.47,安装时只要一直下一步就ok了 安装完成后可以使用cmd(win+r然后输入cmd进入)测试下是否安装成功.方法:在cmd下输入node -v,出现下图版本提示就是完成了Nodejs的安装. 我们打开安装目录: 发现nodejs目录下有一个node.exe,它是干嘛的? 第二步:npm安装 v0.63之前,在Node安装过程中,实际还需要安装npm,到v0.63时Ndejs

VNC的安装和常用命令

安装: 1. 下载VNC文件,我使用的是:VNC-5.2.2-Linux-x64-RPM.tar.gz.去官网下载即可. 2. 解压:tar -xzvf VNC-5.2.2-Linux-x64-RPM.tar.gz 3. 安装:yum install VNC-Server-5.2.2-Linux-x64.rpm // 如果需要依赖某些程序,可以通过挂载印象,安装常用开发软件包解决 4. 安装完毕执行,vncserver 或 vncpasswd 命令设置用户名和密码 :后续只能通过 vncpass

MongoDB入门教程(包含安装、常用命令、相关概念、使用技巧、常见操作等)【转载】

一.安装和配置 MongoDB 的官方下载站是 http://www.mongodb.org/downloads,可以去上面下载最新的安装程序 Windows 平台的安装 ● 步骤一: 下载 MongoDB     点击上方官方下载地址, 并下载 Windows 版本 ● 步骤二: 设置 MongoDB 程序存放目录     下载完成后, 解压到自定义文件夹,例: D:\mongodb\ ● 步骤三: 设置数据文件存放目录     在 D:\mongodb\ 目录下创建 db 和 logs 文件

docker安装及常用命令

一.仓库.镜像.容器 官方docker hub 官方:https://hub.docker.com/explore/ 常用docker 国内镜像源: 网易镜像中心:http://hub-mirror.c.163.com Docker 官方中国区:https://registry.docker-cn.com ustc: https://docker.mirrors.ustc.edu.cn docker国内免费加速器: daocloud:https://www.daocloud.io aliyun: