slb监听协议与端口

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: SLB是云服务商提供的负载均衡服务,用于分发客户端请求到多台后端服务器,提升服务可用性和响应速度。关键概念包括监听协议(TCP、UDP、HTTP、HTTPS、TCPSSL)和监听端口。监听协议决定了SLB处理请求的方式,而监听端口则是SLB接收请求的入口。配置时需根据应用选择合适协议和端口,并可设置负载均衡算法(如轮询、最少连接等)。客户端应通过SLB统一入口访问后端服务,避免绕过SLB导致的问题。

SLB(Server Load Balancer)是云服务提供商如阿里云、华为云等提供的负载均衡服务,用于将客户端的请求分发到后端多台服务器,实现流量的均衡分配和故障转移,以提高服务的可用性和响应速度。在配置SLB时,与监听相关的关键概念包括监听协议和监听端口。

监听协议

监听协议指的是SLB接收并处理客户端请求所使用的网络协议。SLB通常支持以下几种监听协议:

  1. TCP:传输控制协议,适用于无状态的、基于TCP的应用,如基于HTTP、HTTPS、FTP、SMTP等协议的应用,但不解析应用层内容,仅在TCP层面上进行负载均衡。

  2. UDP:用户数据报协议,适用于需要低延迟、对丢包不敏感的实时应用,如DNS查询、流媒体传输(如RTSP、RTP)、在线游戏等。

  3. HTTP:超文本传输协议,适用于Web服务。SLB在这一层可以解析HTTP请求,并可以根据HTTP头部、URL、Cookies等信息进行更精细化的负载均衡策略,如会话保持、路径路由等。

  4. HTTPS:安全超文本传输协议,即HTTP over TLS/SSL。SLB不仅负责负载均衡,还负责终止TLS/SSL连接,对客户端的加密请求进行解密,然后以明文形式将请求转发至后端服务器。同时,SLB可能还需要配置SSL证书以支持HTTPS通信。

  5. TCPSSL:这是阿里云SLB中特定的一种表述方式,实际上是指TCP协议下支持SSL/TLS加密的监听,也就是HTTPS流量。在配置时,需要上传并绑定相应的SSL证书。

监听端口

监听端口是指SLB对外提供服务并接收客户端连接请求的端口号。不同的应用程序和服务通常使用特定的端口进行通信,例如:

  • HTTP:默认使用端口 80
  • HTTPS:默认使用端口 443
  • FTP:控制连接使用端口 21,数据连接通常使用端口 20 或动态分配的端口
  • SSH:默认使用端口 22
  • MySQL:默认使用端口 3306
  • MongoDB:默认使用端口 27017
  • Nginx 的 Nacos Server 示例中提到的 88489848,可能是特定服务的非标准端口

在配置SLB监听时,您需要指定一个或多个监听端口,这些端口应与您的应用程序实际使用的端口相匹配。例如,如果您有一个Web服务运行在后端服务器的80端口上,那么在SLB上应创建一个监听HTTP协议且端口为80的监听项。同样,对于HTTPS服务,您应在SLB上配置一个监听端口为443、协议为HTTPS(或TCPSSL)的监听项,并关联相应的SSL证书。

策略选择

在设置监听时,除了协议和端口,您可能还需要配置负载均衡算法,以决定如何将接收到的请求分发到后端服务器。常见的负载均衡算法包括:

  • 轮询(Round Robin):均匀地将请求依次分发到各个后端服务器。
  • 最少连接(Least Connections):将新请求发送到当前连接数最少的后端服务器,有利于平衡服务器间的负载。
  • 源IP哈希(Source IP Hash):基于客户端IP地址进行哈希计算,确保同一客户端的请求始终被分发到同一后端服务器,适用于需要会话保持的场景。
  • 加权轮询/加权最少连接:在轮询或最少连接的基础上,为后端服务器分配权重,权重高的服务器接收更多的请求。

关于特定问题

针对您提到的某客户端通过SLB连接到A机Nacos Server的8848端口,再通过SLB连接到B机Nacos Server的9848端口的问题,这种情况通常不符合预期。SLB设计的目的是让客户端只通过一个统一的入口(即SLB的公网IP和端口)访问后端服务,SLB根据配置的规则将请求透明地转发到后端服务器的对应端口。如果客户端直接连接到不同服务器的不同端口,就绕过了SLB的负载均衡机制,可能导致服务管理复杂化、会话状态不一致等问题。正确的做法是:

  • 客户端只通过SLB的公开IP和端口(如8848)访问Nacos服务。
  • SLB上配置一个监听8848端口的监听项,协议应与Nacos Server实际使用的协议相符。
  • 将所有Nacos Server(无论A机还是B机)的对应端口(如8848或统一调整为同一路由的端口)添加到SLB的后端服务器池中。
  • 根据需要配置合适的负载均衡策略,确保SLB能够正确地将客户端请求分发到后端Nacos Server。

总结来说,SLB的监听协议和端口配置应与您的应用服务的实际需求相匹配,并确保客户端通过SLB提供的统一接口访问后端服务器,以充分利用负载均衡功能。

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
4月前
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
704 2
|
14天前
|
负载均衡 算法 API
slb确认监听设置
slb确认监听设置
24 4
|
1月前
|
弹性计算 负载均衡 算法
slb配置监听器
【10月更文挑战第18天】
62 3
|
2月前
|
XML JSON 网络协议
【TCP/IP】自定义应用层协议,常见端口号
【TCP/IP】自定义应用层协议,常见端口号
38 3
|
4月前
|
开发框架 .NET Linux
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
|
5月前
|
人工智能 Serverless API
函数计算产品使用问题之如何在一个Docker容器内运行一个持续监听特定端口的应用程序
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
网络协议
【qt】TCP的监听 (设置服务器IP地址和端口号)
【qt】TCP的监听 (设置服务器IP地址和端口号)
245 0
|
4月前
|
Linux Windows
Windows查找监听端口对应的进程及其路径
Windows查找监听端口对应的进程及其路径
127 0
|
6月前
|
Java Android开发
Java Socket编程示例:服务器开启在8080端口监听,接收客户端连接并打印消息。
【6月更文挑战第23天】 Java Socket编程示例:服务器开启在8080端口监听,接收客户端连接并打印消息。客户端连接服务器,发送"Hello, Server!"后关闭。注意Android中需避免主线程进行网络操作。
110 4
|
6月前
|
网络协议 NoSQL 算法
TCP协议:超时重传、流量控制、keep-alive和端口号,你真的了解吗?
【6月更文挑战第2天】本文探讨了TCP协议的关键机制,包括超时重传计算(基于SRTT和RTT),流量控制(使用滑动窗口适应接收方处理能力),TCP keep-alive(通过定期探测保持连接活性),以及端口号的作用(区分不同服务和应用)。这些内容对于理解TCP的工作原理和面试准备至关重要。
160 1