高负载均衡学习haproxy之TCP应用

一、业务要求

现在我们有两个要求,这两个要求的协议都是通过tcp协议的。

1.1 haproxy代理ssh

为了安全起见,要求所有业务服务器都关闭公网的连接,只开放haproxy所在的服务器,并且其他业务服务器的ssh连接通过haproxy来实现。

实际业务,访问192.168.5.171的8098端口就是访问192.168.5.174的ssh端口。

1.2 haproxy代理mysql

为了安全起见,要求mysql数据库的连接只能通过内网IP,但是因为使用的是云数据库,所以如果公司内部要连接数据库的话要通过haproxy来实现。

实际业务,访问192.168.5.171的8099端口就是访问192.168.7.7的3306端口。

二、配置haproxy

因为是haproxy的7层和4层混合使用,所以在defaults中,我们不定义haproxy的运行模式。

注意:有关http模式的相关配置参数不要出现在default中。

有关业务要求的TCP 4层应用,我们的haproxy配置如下:

listen 8099

bind 0.0.0.0:8099

mode tcp

server 174_22 192.168.5.174:22 maxconn 1024 weight 5 check inter 2000 rise 2 fall 3

listen 8098

bind 0.0.0.0:8098

mode tcp

server 77_3306 192.168.7.7:3306 maxconn 1024 weight 5 check inter 2000 rise 2 fall 3

整个haproxy的配置文件如下:

grep -vE “^#|^$” haproxy.cfg

global

log 127.0.0.1 local0

log 127.0.0.1 local1 notice

maxconn 4096

uid 1005

gid 1005

daemon

defaults

log global

retries 3

option redispatch

maxconn 2000

contimeout 5000

clitimeout 50000

srvtimeout 50000

listen admin_stats

bind 192.168.5.171:1080

mode http

option httplog

maxconn 10

stats refresh 30s

stats uri /stats

stats auth admin:admin

stats hide-version

frontend weblb

bind *:80

acl is_dg hdr_beg(host) dg.test.com

mode http

acl is_ilanni hdr_beg(host) ilanni.test.com

acl is_171 hdr_beg(host) 192.168.5.171

acl is_ip src 192.168.5.140

acl is_port dst_port 8090

use_backend acl if is_171 is_ip

use_backend mui_acl if is_171 is_ip is_port

use_backend dgserver if is_dg

use_backend ilanni if is_ilanni

use_backend 171server if is_171

default_backend backend_default

backend dgserver

balance source

mode http

server web1 192.168.5.171:8080 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

server web2 192.168.5.174:8080 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

server web3 192.168.5.178:8080 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

backend 171server

balance roundrobin

mode http

server dg1 192.168.5.174:80 check

server dg2 192.168.5.178:80 check

backend ilanni

server web1 www.yuanbaopu.com:80 weight 3 check inter 2000 rise 2 fall 3

mode http

backend acl

balance source

mode http

server web1 www.ilanni.com:80 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

backend mui_acl

balance source

mode http

server web1 192.168.5.178:80 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

backend backend_default

server web1 192.168.5.178:8080 weight 3 check inter 2000 rise 2 fall 3

mode http

listen 8090

bind 0.0.0.0:8090

mode http

balance roundrobin

server web1 192.168.5.174:8090 maxconn 1024 weight 5 check inter 2000 rise 2 fall 3

server web2 192.168.5.178:8090 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

listen 8099

bind 0.0.0.0:8099

mode tcp

server 174_22 192.168.5.174:22 maxconn 1024 weight 5 check inter 2000 rise 2 fall 3

listen 8098

bind 0.0.0.0:8098

mode tcp

server 77_3306 192.168.7.7:3306 maxconn 1024 weight 5 check inter 2000 rise 2 fall 3

三、验证要求

haproxy配置完毕后,我们来验证haproxy的配置是否正确,如下:

3.1 验证haproxy代理ssh

现在我们来验证haproxy代理ssh,在Linux客户端上使用如下命令:

ssh -p8099 wangxy@192.168.5.171

通过上图,我们可以很明显的看出haproxy成功的代理了192.168.5.174的ssh端口。

3.2 验证haproxy代理mysql

现在我们来验证haproxy代理mysql,在Linux客户端上使用如下命令:

mysql -P8098 -h192.168.5.171 -uroot –p

通过上图,我们可以很明显的看出haproxy成功的代理了192.168.7.7的3306端口(也即是mysql)。

时间: 2024-09-20 08:19:33

高负载均衡学习haproxy之TCP应用的相关文章

高负载均衡学习haproxy之配置文件详解

通过前一篇文章的介绍,我们知道了haproxy的配置文件主要包含以下几个部分: global全局配置.defaults默认配置.监控页面配置.frontend配置.backend配置 下面对每一部分分别进行讲解. PS:本文部分内容借鉴马哥haproxy视频. 一.global全局配置 全局配置的标志参数为global,全局配置主要用于设定义全局参数,属于进程级的配置,通常和操作系统配置有关. 1.1 进程管理及安全相关的参数 chroot <jail dir>:修改haproxy的工作目录至

高负载均衡学习haproxy之关键词介绍

1.关键词balance balance用于定义负载均衡的算法,可用于defaults.listen和backend中. balance使用方法如下: balance <algorithm> [ <arguments> ] balance url_param <param> [check_post [<max_wait>]] <algorithm>用于在负载均衡场景中挑选一个server,其仅应用于持久信息不可用的条件下或需要将一个连接重新派发至

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

一.haproxy介绍 以下开始介绍有关haproxy的原理及其优点. 1.1.haproxy原理 haproxy提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. haproxy特别适用于那些负载特别大的web站点,这些站点通常又需要会话保持或七层处理.haproxy运行在时下的硬件上,完全可以支持数以万计的并发连接,并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到

【官方文档】Nginx负载均衡学习笔记(二)负载均衡基本概念介绍

简介 负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台 ECS 的流量分发控制服务.负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性. 负载均衡主要有如下几个功能点: 负载均衡服务通过设置虚拟服务地址(IP),将位于同一地域(Region)的多台云服务器(Elastic Compute Service,简称ECS)资源虚拟成一个高性能.高可用的应用服务池:根据应用指定的方式,将来自客户端的网络请求分发到云服务器池中

【官方文档】Nginx负载均衡学习笔记(三) TCP和UDP负载平衡官方参考文档

本章介绍如何使用NGINX Plus和NGINX开放源代理和负载平衡TCP和UDP流量. 目录 介绍 先决条件 配置反向代理 配置TCP或UDP负载平衡 选择负载平衡方法 配置会话持久性 被动健康监控 主动健康监控 怎么运行的 先决条件 基本配置 微调健康检查 使用匹配配置块进行微调健康检查 TCP的微调健康检查 UDP的微调健康检查 即时配置 动态配置示例 TCP和UDP负载平衡配置示例 介绍 负载平衡是指跨多个后端服务器有效分布网络流量. 在版本5和更高版本中,NGINX可以代理和负载平衡T

【精选】Nginx负载均衡学习笔记(一)实现HTTP负载均衡和TCP负载均衡(官方和OpenResty两种负载配置)

说明:很简单一个在HTTP模块中,而另外一个和HTTP 是并列的Stream模块(Nginx 1.9.0 支持) 一.两个模块的最简单配置如下 1.HTTP负载均衡: http { include mime.types; default_type application/octet-stream; upstream live_node { server 127.0.0.1:8089; server 127.0.0.1:8088; } server { listen 80; server_name

Keepalived+HAProxy实现MySQL高可用负载均衡的配置_Mysql

 Keepalived 由于在生产环境使用了mysqlcluster,需要实现高可用负载均衡,这里提供了keepalived+haproxy来实现.       keepalived主要功能是实现真实机器的故障隔离及负载均衡器间的失败切换.可在第3,4,5层交换.它通过VRRPv2(Virtual Router Redundancy Protocol) stack实现的.       Layer3:Keepalived会定期向服务器群中的服务器.发送一个ICMP的数据包(既我们平时用的Ping程

Nginx/LVS/HAProxy 负载均衡软件的优缺点详解

Nginx/LVS/HAProxy 负载均衡软件的优缺点详解 Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑

Haproxy负载均衡集群架构设计的例子

公司最近有一个项目由于用户担心一台单机无法承担最多用户量的使用,要求上应用集群.我们根据应用情况设计了应用集群架构. 架构图如下: 部署应用集群的特点: 1. 前端代理负载均衡 因用户环境基础架构采用虚拟化集群平台,服务器均采用虚拟机实现,所以设计时采用单台Haproxy来实现. 前端选用haproxy:有一最大的特点HTTP第7层键康状态检查,与我们实际需要一致,因经常有应用压力大,应用无法响应的情况,正好通过这一个特性进行健康状态检查,保证用户透明访问.之前有采用haporxy的主备模式做双