首页 > 其他分享 >haproxy的安装和服务信息

haproxy的安装和服务信息

时间:2024-08-08 14:52:45浏览次数:11  
标签:haproxy 服务 root frontend nginx 服务器 全局 安装

为什么要使用haproxy?

因为LSV无后端检测,当webserver有一台状态异常,则运作异常;所以用haproxy来解决。

haproxy是一款具备高并发(万级以上)、高性能的TCP和HTTP负载均衡器,它支持基于cookie的持久性,自动故障切换,支持正则表达式及web状态统计。

目录

一、实验环境

二、haproxy基本部署

1、下载安装

2、部署

3、测试

(1)nginx服务皆开启时

(2)断开其中一个nginx服务,开启后端检测

三、基本配置信息

(1)global        全局配置段

(2)proxies        代理配置段

        1、defaults

        2、frontend

        3、backend

        4、listen


一、实验环境

功能IP
本地172.25.254.1
haproxyeth0   172.25.254.100     
RS1eth0   172.25.254.10
RS2eth0   172.25.254..20

二、haproxy基本部署

1、下载安装

[root@haproxy ~]# dnf install haproxy -y
[root@webserver1 ~]# dnf install nginx -y
[root@webserver2 ~]# dnf install nginx -y

2、部署

[root@webserver1 ~]# echo webserver1 -- 172.25.254.10 > /usr/share/nginx/html/index.html
[root@webserver1 ~]# systemctl enable --now nginx

[root@webserver2 ~]# echo webserver2 -- 172.25.254.20 > /usr/share/nginx/html/index.html
[root@webserver2 ~]# systemctl enable --now nginx

在 haproxy.cfg中编辑,添加图片中所示内容,其中框出的两种方式皆可用

[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg
[root@haproxy ~]# systemctl enable haproxy
[root@haproxy ~]# systemctl restart haproxy.service

tip小技巧

3、测试

(1)nginx服务皆开启时

(2)断开其中一个nginx服务,开启后端检测

[root@webserver1 ~]# systemctl stop nginx.service

三、基本配置信息

HAProxy配置文件——haproxy.cfg(两部分组成:global、proxies)

(1)global        全局配置段

        进程及安全配置相关的参数、性能调整相关参数、Debug参数

参数类型作用
chroot全局锁定运行目录
deamon全局以守护进程运行
user, group, uid, gid全局运行haproxy的用户身份
stats socket全局套接字文件
nbproc N全局开启的haproxy worker进程数,默认进程数1
nbthread 1
(与nbproc互斥)
全局指定每个人haproxy进程开启的线程数,默认为每个进程一个线程
cpu-map 1 0全局绑定haproxy worker进程至指定CPU,将第1个work进程绑定至0号CPU
cpu-map 2 1全局绑定haproxy worker进程至指定CPU,将第2个work进程绑定至1号CPU
maxconn N全局每个haproxy进程的最大并发连接数
maxsslconn N全局每个haproxy进程ssl最大连接数,用于haproxy配置了证书的场景下
maxconnrate N全局每个进程每秒创建的最大连接数量
spread-checks N全局后端server状态check随机提前或延迟百分比时间,建议2-5(20%-50%)之间,默认值0
pidfile全局指定pid文件路径
log 127.0.0.1 local2 info全局定义全局的syslog服务器;日志服务器需要开启UDP协议,最多可以定义两个

示例:

nbproc 2    #开启两个进程

# 当启用多进程时,需绑定进程至指定CPU,避免CPU漂移
cpu-map 1 0    #进程和cpu核心绑定防止cpu抖动从而减少系统资源消耗
cpu-map 2 1    #2 表示第二个进程,1表示第二个cpu核心

# 日志文件——定向haproxy的日志
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg    # 查看定义标准
[root@haproxy ~]# vim /etc/rsyslog.conf    # 开启UDP服务,定义haproxy日志文件位置

[root@haproxy ~]# systemctl restart rsyslog.service
[root@haproxy ~]# systemctl restart haproxy.service

(2)proxies        代理配置段

        defaults:为frontend, backend, listen 提供默认配置

        frontend:前端,相当于nginx中的server{}

        backend:后端,相当于nginx中的upstream{}

        listen:同时拥有前端和后端配置,配置简单,生产推荐使用

参数类型作用
defaults []proxies默认配置项,针对以下的frontend、backend和listen生效,可以多个name也可以没有name
frontendproxies前端servername,类似于Nginx的一个虚拟主机server和LVS服务集群。
backendproxies后端服务器组,等于nginx的upstream和LVS中的RS服务器
listenproxies将frontend和backend合并在一起配置,相对于frontend和backenc配置更简洁,生产常用

        1、defaults

参数功能
option abortonclose当服务器负载很高时,自动结束掉当前队列处理比较久的连接,针对业务当情况选择开启
option redispatch当server ld对应的服务器挂掉后,强制定向到其他健康的服务器,重新派发
option http-keep-alive开启与客户端的会话保持
option forwardfor透传客户端真实IP至后端web服务器(在apache配置文件中加入:%{X-Forwarded-For}i后在webserer中看日志即可看到地址透传信息)
mode http | tcp设置默认工作类型,使用TCP服务器性能更好,减少压力
timeout http-keep-alive 120ssession 会话保持超时时间,此时间段内会转发到相同的后端服务器
timeout connect 120s客户端请求从haproxy到后端server最长连接等待时间(TCP连接之前)默认单位ms
timeout server 600s客户端请求从haproxy到后端服务端的请求处理超时时长(TCP连接之后),默认单位ms,如果超时,会出现502错误,此值建议设置较大些,访止502错误
timeout client 600s设置haproxy与客户端的最长非活动时间,默认单位ms,建议和timeout server相同
timeout check 5s对后端服务器的默认检测超时时间
default-server inter 1000 weight 3指定后端服务器的默认设置

        2、frontend

        bind:指定HAProxy的监听地址,可以是IPV4或IPV6,可以同时监听多个IP或端口,可同时用于listen字段中        

        格式:bind [<address>]:<port_range>[,...][param*]

[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg

注意:如果需要绑定在非本机的IP,需要开启内核参数:net.ipv4.ip_nonlocal_bind=1
backlog <backlog>#针对所有server配置,当前端服务器的连接数达到上限后的后援队列长度,注意:不支持backend

        3、backend

        定义一组后端服务器,backend服务器将被frontend进行调用。

        mode http | tcp        # 指定负载协议类型,和对应的frontend必须一致

        option                      #配置选项

        sever                       #定义后端realserver,必须指定IP和端口

注意:backend 的名称必须唯一,并且必须在listen或frontend中事先定义才可以使用,否则服务无法启动

option后面加 httpchk,smtpchk,mysql-check,pgsql-check,ssl-hello-chk方法,可用于实现更多应用层检测功能。

        4、listen

        使用listen替换 frontend和backend的配置方式,可以简化设置,通常只用于TCP协议的应用

标签:haproxy,服务,root,frontend,nginx,服务器,全局,安装
From: https://blog.csdn.net/weixin_68256171/article/details/140994538

相关文章

  • 云服务器Linux Centos7 安装minio
    官网下载minio地址:https://min.io/download?license=agpl&platform=kubernetes本文章可放心无脑食用1.准备工作创建存储位置(一般在/usr/local下安装程序)mkdir/usr/local/miniomkdir/usr/local/minio/data/usr/local/minio:存放minio程序/usr/local/minio:存放mi......
  • yarn的安装和配置使用
    文章目录一、前言二、yarn简介三、yarn的特点四、yarn安装五、配置yarn5.1全局配置5.2项目配置五、使用yarn六、yarn常用命令七、版本管理一、前言Yarn是facebook发布的一款取代npm的包管理工具,本文给大家介绍yarn的安装和使用,最详细教程,感兴趣的朋友一起看看吧......
  • RK3588安装rknn-toolkit-lite2
    RK3588安装rknn-toolkit-lite2一、下载rknn-toolkit2包:sudogitclonehttps://gitclone.com/github.com/airockchip/rknn-toolkit2二、安装进入到所在包的位置,然后解压:unziprknn-toolkit2-master.zip进入rknn-toolkit-lite2所在路径:cdrknn-toolkit2-master/rknn-t......
  • JDK8 的下载、安装、配置环境变量教程
    JDK8的下载、安装、配置环境变量图文教程JDK8的下载JDK8安装JDK8环境变量配置JDK8检验配置是否完成JDK8的下载链接:官网下载地址点击下载JDK8安装1、双击运行jdk-8u421-windows-x64.exe文件2、点击“下一步”3、更改安装路径,(这个路径你要记住,即使不......
  • ignite系列之15--使用ignite构建服务端application配置项
    #false为服务端模式,true为客户端模式,此处配置falseignite.clientMode=false#类对等开关,默认开启,此处需要开启ignite.peerClassLoadingEnabled=true#集群发现端口,多个节点部署时端口是一个,localPortRange=1,addresses配置成ip1:port,ip2:portignite.discoverySpi.localPort=47500ig......
  • Visual Studio Community安装WebForm创建和数据连接
    目录一、安装VisualStudioCommunity1.下载VisualStudioCommunity2.双击安装3.配置二、项目创建1.创建新项目2.配置新项目3.创建web窗体4.代码分部5.文件打开问题三、数据库访问1.自己先装一个sqlserver2.创建实体数据模型3.创建连接4.修改更新 四、项目......
  • Spring格式化转换服务详解
    Spring格式化转换服务详解在Spring框架中,数据转换是一个常见的需求,尤其是在处理Web应用程序时。Spring提供了一个强大的转换服务ConversionService,它允许开发者自定义类型之间的转换规则。本文将通过一个具体的示例,详细解释如何在Spring应用程序中使用DefaultFormattingCon......
  • 解决安装iperf 出现错误cannot find dependency uclibcxx for iperf
    iperf是一个常用免费的网络性能测试工具。iperf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。在openwrt安装时通常会遇到下面问题 原因如提示所描述没有uclibcxx依赖库。制作ipk依赖包然后安装上。提示安装完成。......
  • 使用xshell连接阿里云远程服务器(图文教程)
     1.参考资料:阿里云官方帮助资料: https://help.aliyun.com/document_detail/71529.html?spm=a2c4g.11186623.6.616.JqUSgl2.准备条件:   1).登录阿里云官网,申请阿里云ECS服务器       请参考网上其他教程,或者自己申请一下就好。   2).下载Xshell客户......
  • centos7.9 安装docker-ce
    #step1:安装必要的一些系统工具sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#Step2:添加软件源信息sudoyum-config-manager--add-repohttps://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#Step3sudosed-i's+download.docker.c......