haproxy学习之安装部署和应用

author author     2022-08-03     476

关键词:

【认识haproxy】

官网:www.haproxy.org

软件作用:负载均衡,可做4层也可做7层。

优点:

1 配置简单,软件使用简单

2 4、7层都可以做

3 有自动的监控检查功能

4 是一个专业反向代理软件

5 会话保持功能比较强大(ngixn的实现是通过ip hash,LVS 是通过-p)

6 几乎不需要优化,支持数以万计的并发连接。


常常用来对比LVS和NGINX对比



【常用环境】

1 邮件服务器代理

2 取代F5 等设备,或者作为其备份

3 代理web


【haporxy的简单搭建和简单使用实例--代理ssh】

目的:学习了解haproxy



【系统的环境】

[[email protected] haproxy]# ifconfig |grep -A1 eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:65:14:0F  

          inet addr:192.168.100.10  Bcast:192.168.100.255  Mask:255.255.255.0

[[email protected] haproxy]# uname -r; uname -m

2.6.32-358.el6.x86_64

x86_64

[[email protected] haproxy]# cat /etc/issue

entOS release 6.4 (Final)



【软件准备】

[[email protected] haproxy]# ll -h /usr/local/src/haproxy-1.6.2.tar.gz 

-rw-r--r-- 1 root root 1.5M Sep  4 18:52 /usr/local/src/haproxy-1.6.2.tar.gz



【安装】

cd /usr/local/src
tar xvf haproxy-1.6.2.tar.gz 
cd haproxy-1.6.2
make TARGET=linux2628 ARCH=x86_64
make install PREFIX=/usr/local/haproxy


【安装结果和一些常用目录创建】

默认只有三个目录

[[email protected] haproxy]# tree -d /usr/local/haproxy/

/usr/local/haproxy/

├── doc

│   └── haproxy

├── sbin

└── share

    └── man



创建一些常用目录:

cd /usr/local/haproxy

mkdir -p etc var/run/ var/chroot logs  #放置haproxy配置文的目录,var/run 放置pid等文件的目录



创建haproxy用户

[[email protected] etc]# useradd haproxy

[[email protected] etc]# id haproxy

uid=1002(haproxy) gid=1002(haproxy) groups=1002(haproxy)


【编写haproxy配置文件】

vim haproxy.cfg


#Global settings

global

    log 127.0.0.1:514 local3 info  ###[err warning info debug]

    maxconn 20480

    chroot /usr/local/haproxy/var/chroot

    user haproxy #为haproxy 用户的uid ,haproxy用户需要自己手动创建

    group haproxy

    daemon  #后台运行

    quiet

    nbproc 2

    pidfile /usr/local/haproxy/var/run/haproxy.pid


##---------------------------------------------------------------------

## common defaults that all the ‘listen‘ and ‘backend‘ sections will 

## use if not designated in their block

##---------------------------------------------------------------------

defaults

    log global   ####采用全局定义的日志

    mode http   ###默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK

    maxconn 20480

    option httplog

    option httpclose

    option forwardfor

    option dontlognull ###不记录健康检查的日志信息

    option redispatch  ###serverId对应的服务器挂掉后,强制定向到其他健康的服务器

    retries 3   #3次连接失败就认为服务不可用,也可以通过后面设置

    balance roundrobin

    contimeout 5000

    clitimeout 50000

    srvtimeout 50000

listen ssh_poll

    bind 192.168.100.10:80

    mode tcp

    option httplog

    option dontlognull

    option logasap

    option forwardfor

    option httpclose

server host1 192.168.100.10:22 check inter 2000 rise 3 fall 3

server host2 192.168.100.13:22 check inter 2000 rise 3 fall 3


listen status

    bind 192.168.100.10:8080

    stats enable

    stats uri /stats   #管理地址

    stats auth admin:123456  #管理用户和密码

[[email protected] etc]# 




测试启动:

检查配置文件:

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.conf -c


-f 指定配置文件

-c check配置文件


后台启动

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.conf -D


检查是否启动1:

[[email protected] haproxy]# ps -ef |grep haproxy

haproxy   2394     1  0 22:22 ?        00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.conf -D

haproxy   2395     1  0 22:22 ?        00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.conf -D

root      2626  1707  0 22:27 pts/0    00:00:00 grep --color=auto haproxy


检查端口是否启动:

[[email protected] haproxy]# netstat -tulnp |grep 80

tcp        0      0 192.168.100.10:8080         0.0.0.0:*                   LISTEN      2394/haproxy        

tcp        0      0 192.168.100.10:80           0.0.0.0:*                   LISTEN      2394/haproxy  




【测试80-代理ssh端口】

[[email protected] haproxy]# ssh -p80 192.168.100.10

[email protected]‘s password: 

Last login: Sun Sep  4 22:23:02 2016 from 192.168.100.10    #第一被代理轮循到了host1

[[email protected] ~]# logout

Connection to 192.168.100.10 closed.

[[email protected] haproxy]# ssh -p80 192.168.100.10    

Last login: Sun Sep  4 22:23:05 2016 from 192.168.100.10      #第二被代理轮循到了host2

[[email protected] ~]# Connection to 192.168.100.10 closed by remote host.

Connection to 192.168.100.10 closed.





【查看日志和配置日志的路径】

1 日志被定义到了local3 级别为info。 这是要开启/etc/init.d/rsyslogd 服务的(如何使用这个服务,百度)。

2 netstat -tulnp |grep 514 查看是否监听rsyslogd端口


默认日志写入/var/log/messages

技术分享




如何修改日志的路径?

1 修改rsyslogd的配置(514监听端口一定要开启)

[[email protected] haproxy]# tail -1 /etc/rsyslog.conf 

local3.*     /usr/local/haproxy/logs/haproxy.log


2 重启rsyslogd服务

/etc/init.d/rsyslog restart



【编写haproxy的启动脚本】





本文出自 “学通信,第一份工作运维” 博客,请务必保留此出处http://cuidehua.blog.51cto.com/5449828/1846235

zookeeper学习之安装部署

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKeeper是以Fast Paxos算法为基础,实现同步服务,配置维护和命名服务等分布式应用。Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要... 查看详情

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

有关高负载均衡的软件,目前使用比较多的是haproxy、nginx和lvs。下面我们就开始学习haprxoy这款软件。一、haproxy介绍以下开始介绍有关haproxy的原理及其优点。1.1、haproxy原理haproxy提供高可用性、负载均衡以及基于TCP(第四层)和HTTP... 查看详情

小5聊vs2019开发工具之安装和部署winform项目

VS2019版本,已经移除了安装和部署功能,需要到管理扩展下载1、管理扩展下载安装和部署功能 installerProjects记得需要关闭VS开发工具,然后会自动安装  2、新建项目搜索setupproject 默认界面 3、文件夹说明ApplicationFo... 查看详情

prometheus学习之安装(代码片段)

## 简介Prometheus,一个开源的监控系统,它通过获取应用程序中实时时间序列数据,然后根据强大的规则引擎,帮助用户监控机器和应用程序。安装首先从 Prometheus 的官网下载安装包,这里下载的是 Linux安装包... 查看详情

jmeter之安装部署

Jmeter之安装部署1、环境要求JMeter可以安装部署在Windows平台下,也可以部署安装在临Linux平台下,环境要求必须安装jdk1.4以上,jdk的版本建议安装jdk1.7。2、安装部署2.1Windows下安装部署1)jdk1.7安装下载jdk安装包默认安装即可,安装... 查看详情

idea学习笔记之安装和基本配置

安装和基本配置: 下载:https://www.jetbrains.com/idea/download/#section=windows 下载Zip安装包:  基础知识:Eclipse的工作区=IDEA的项目Eclipse的项目=IDEA的模块 修改信息提示:Alt+/ 关闭当前窗口:Ctrl+W自动导包:配置JD... 查看详情

虚拟化vmware之安装部署vcenter

vCenter是vSphere解决方案的基础物理架构核心,可以提供如访问控制、性能监控和配置功能等,并且可以将多台ESXi主机资源集中,使这些资源在整个数据中心的虚拟机之间共享。vCenter是一种服务,充当连接网络的ESXi主机的中心管... 查看详情

prometheus+grafana部署说明之安装(代码片段)

说明在前面的Prometheus学习系列文章里,大致介绍说明了Prometheus和Grafana的一些使用,现在开始介绍如何从头开始部署Prometheus+Grafana,来监控各个相关的指标数据来进行展示。部署Prometheus基于Golang编写(需要安装),编译后的软... 查看详情

git学习之安装

1.官网下载https://git-scm.com/downloads2.修改安装目标路径,其他默认安装3.通过系统管理员身份打开cmd,输入git检查是否安装成功 查看详情

第0课-搭建开发环境之安装qt

第0课-搭建开发环境之安装Qt1.课程学习的原材料  —VisualStudio2010  —QtSDK4.7.4  —QtCreator2.4.12.VisualStudio2010    (1)用于学习Windows上GUI程序设计的原理  (2)体会使用C/C++编写GUI窗口应用程序  (3)展现Qt对于Win... 查看详情

1.深度学习之安装教程

在centos5下安装TensorFlow。步骤:1.安装python3.52.安装pip3,同时建立软链接。3.安装TensorFlow,pipinstall--upgradetensorflow 出现问题:1./lib64/libc.so.6:versionGLIBC_2.14notfound解决办法: 查看详情

linux系统之安装linux管理工具inpanel(代码片段)

Linux系统之安装Linux管理工具inpanel一、inpanel介绍1.inpanel简介2.inpanel特点二、检查本地系统环境1.检查系统版本2.检查系统内核版本三、下载inpanel软件包1.创建下载目录2.下载inpanel软件3.查看源码inpanel文件四、部署inpanel应用1.一键... 查看详情

自动化之安装操作系统——pxe

    PXE:PrebooteXecutionEverionment,Intel公司开发的预启动执行环境,使用这套环境能够使我们在为大量的计算机部署操作系统的时候,不必在每一台新主机上部署操作系统,而是让其自动安装,我们只需要让机器开机... 查看详情

2.solr学习速成之安装

1.下载解压solr-5.3.1.tgz[[email protected]opt]#tar-zxfsolr-5.3.1.tgz-C/opt/module/2.将solr-5.3.1/server/solr-webapp下的webapp文件夹拷贝到tomcat下的webapp下,并改名solr[[email protected]solr-webapp]#cp-rwebapp/* 查看详情

rabbitmq学习之安装

一、Yum的安装配置切换linuxroot权限#su-在根目录下创建yum文件夹#cd/#mkdiryum1、配置本地yum源(1)将系统安装镜像挂载到本地文件系统#mount-oloop/mnt/hgfs/share/rhel-server-6.6-x86_64-dvd.iso/yum  //(ISO镜像文件的地址,之前在... 查看详情

prometheus学习之安装(代码片段)

## 简介Prometheus,一个开源的监控系统,它通过获取应用程序中实时时间序列数据,然后根据强大的规则引擎,帮助用户监控机器和应用程序。安装首先从 Prometheus 的官网下载安装包,这里下载的是 Linux安装包... 查看详情

linux(centos)之安装tomcat并且部署javaweb项目(转)

1.准备工作  a.下载tomcatlinux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图:          b.因为tomcat的安装依赖于Javajdk,所以我们需要在判断linux系统下面是否安装jdk ... 查看详情

mdt2010部署windows7之安装与配置wds

文档说明:通过此部分内容,您将了解到如何使用MicrosoftDeploymentToolkit2010部署Windows7客户端,实验内容包括安装、配置MDT以及部署Windows7客户端等内容。(省略安装配置AD、DNS、DHCP)机器名系统角色功能备注DCWindowsServer2012R2AD、DHC... 查看详情