当您使用HTTP协议开发应用而无需加密通信时,例如内部网络通信、测试和开发环境或者非敏感信息传输等场景,您可以为CLB实例添加HTTP监听来转发来自HTTP协议的请求。
前提条件
您已经创建传统型负载均衡CLB实例。具体操作,请参见创建和管理CLB实例。
操作步骤
步骤一:配置监听
选择实例的地域。
选择以下一种方法,打开监听配置向导。
在实例管理页面,找到目标实例,然后在操作列单击监听配置向导。
在实例管理页面,单击目标实例ID,然后在监听页签单击添加监听。
在协议&监听配置向导,完成以下配置,然后单击下一步。
监听配置
说明
选择监听协议
选择监听的协议类型。
本文选择HTTP。
后端协议
当本文选择的是HTTP协议时,后端协议为HTTP。
监听端口
用来接收请求并向后端服务器进行请求转发的监听端口。端口范围为1~65535。
HTTP协议默认使用80端口。
标签
选择或输入标签键与标签值。
高级配置
单击修改展开高级配置。
调度算法
支持选择以下调度算法,默认选择轮询 (RR)。
加权轮询(WRR):权重值越高的后端服务器,被轮询到的次数(概率)也越高。
轮询(RR):按照访问顺序依次将外部请求分发到后端服务器。
调度算法的详细介绍及适用场景,请参见负载均衡调度算法介绍。
监听转发
选择是否将HTTP监听的流量转发到HTTPS监听。开启后需要选择目的HTTPS监听。
说明已创建的HTTP监听不支持开启监听转发,您需要重新创建HTTP监听并开启监听转发。
如果开启监听转发,确保您已经创建了HTTPS监听。具体操作,请参见教程使用CLB将HTTP访问重定向至HTTPS。
开启会话保持
默认关闭会话保持。
开启会话保持功能后,CLB会把来自同一客户端的访问请求分发到同一台后端服务器上进行处理。HTTP协议会话保持基于Cookie。
Cookie处理方式:
植入Cookie:您只需要指定Cookie的过期时间。
客户端第一次访问时,负载均衡会在返回请求中植入Cookie(即在HTTP或HTTPS响应报文中插入ServerId),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。
会话保持超时时间:选择植入Cookie时,输入会话保持的超时时间,
重写Cookie:可以根据需要指定HTTPS或HTTP响应中插入的Cookie。您需要在后端服务器上维护该Cookie的过期时间和生存时间。
负载均衡服务发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器。
Cookie名称:选择重写Cookie时,输入Cookie名称。
启用访问控制
默认关闭访问控制。
开启访问控制后,选择一种访问控制方式,并设置访问控制策略组,作为该监听的白名单或黑名单。
- 白名单:允许特定IP访问负载均衡SLB,仅转发来自所选访问控制策略组中设置的IP地址或地址段的请求,白名单适用于只允许特定IP访问的场景。设置白名单存在一定业务风险。一旦设置白名单,就只有白名单中的IP可以访问负载均衡监听。
如果开启了白名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。
- 黑名单:禁止特定IP访问负载均衡SLB,不会转发来自所选访问控制策略组中设置的IP地址或地址段,黑名单适用于只限制某些特定IP访问的场景。
如果开启了黑名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。
说明IPv6实例只能绑定IPv6访问控制策略组,IPv4实例只能绑定IPv4访问控制策略组。详情参见创建访问控制策略组。
开启监听带宽限速
对于按带宽计费的负载均衡实例,您可以针对不同监听设定不同的带宽峰值来限定监听的流量。实例下所有监听的带宽峰值总和不能超过该实例的带宽。
默认不开启,各监听共享实例的总带宽,如何共享总带宽,请参见CLB监听共享实例带宽。
重要如果公网CLB整体公网带宽为5 Mbps,配置两个监听, 其中A监听分配带宽5 Mbps, B监听没有分配带宽,则会出现B监听端口访问不通的情况,请谨慎分配带宽。
如果私网CLB配置三个监听,A、B监听共分配带宽5120 Mbps,则剩下的C监听会出现端口访问不通的情况,请谨慎分配带宽。
使用流量计费方式的实例默认不限制带宽峰值。
连接空闲超时时间
CLB实例和客户端之间的TCP连接在没有数据传输的情况下保持连接打开的最长时间。默认取值范围:1~60秒。
在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到下一次请求来临时重新建立新的连接。
说明设置连接超时时间后,该设置将应用于整个监听,若需要为某个后端服务器设置连接超时时间,则应为此后端服务器单独配置监听,并在新的监听中设置连接超时时间。
连接请求超时时间
在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,给客户端返回HTTP 504错误码。
默认取值范围为1~180秒。
Gzip数据压缩
开启该配置对特定文件类型进行压缩,关闭该配置则不会对任何文件类型进行压缩。默认开启Gzip数据压缩。
目前Gzip支持压缩的类型包括:
text/xml
、text/plain
、text/css
、application/javascript
、application/x-javascript
、application/rss+xml
、application/atom+xml
和application/xml
。附加HTTP头字段
选择您要添加的自定义HTTP头字段:
添加
X-Forwarded-For
头字段获取客户端真实IP。说明CLB七层监听默认开启通过X-Forwarded-For头字段获取客户端真实IP功能,不支持关闭,若通过此字段获取了多个IP地址,获取的第一个地址就是客户端真实IP。具体操作,请参见通过CLB七层监听获取客户端真实IP。
添加
SLB-ID
头字段获取负载均衡实例的ID。添加
SLB-IP
头字段获取负载均衡实例IP地址。添加
X-Forwarded-Proto
头字段获取负载均衡的监听协议。添加
X-Forwarded-Port
头字段获取负载均衡实例的监听端口。添加
X-Forwarded-Client-srcport
头字段获取访问负载均衡实例客户端的端口。说明X-Forwarded-Port字段和X-Forwarded-Client-srcport字段,仅华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北3(张家口)、华南1(深圳)、中国香港、新加坡地域支持。
获取客户端真实IP
获取来访者的真实IP地址,默认开启。
创建完毕自动启动监听
是否在监听配置完成后启动负载均衡监听,默认开启。
步骤二:添加后端服务器
添加处理前端请求的后端服务器。您可以使用实例配置的默认服务器组,也可以为监听配置一个虚拟服务器组。更多信息请参见CLB服务器组。本文以默认后端服务器组为例进行配置说明。
HTTP监听不支持添加主备服务器组。
在后端服务器配置向导,选择默认服务器组,单击继续添加。
在选择服务器配置向导,选择要添加的后端服务器,单击下一步。
在配置端口和权重配置向导,设置权重,单击添加。
说明权重默认为100,权重越高的后端服务器将被分配到更多的访问请求。
权重设置为0的服务器不会接受新请求。
配置后端服务器(ECS实例)接收请求的端口,单击下一步。端口范围为1~65535。
说明同一个负载均衡实例内,后端服务器端口可以相同。
步骤三:配置健康检查
CLB通过健康检查判断后端服务器的可用性,提升前端业务整体可用性,避免后端服务器异常影响服务。
可选:在健康检查配置向导,单击修改更改健康检查配置,单击下一步。具体请参见配置和管理CLB健康检查。
在配置审核配置向导中检查监听配置,单击修改更改配置。
确认无误后,单击提交,配置成功后,单击知道了。
配置成功后,您可以在页面查看已创建的监听。
常见问题
为什么请求经过七层负载均衡转发后,后端服务器的响应头中的某些参数会被删除?
为了实现会话保持,负载均衡会修改后端服务器响应头中的Date、Server、X-Pad和X-Accel-Redirect等参数值。
解决方案:
在后端服务器响应头中添加自定义报文头部时,可以加入一个前缀(如xl-server或xl-date),以避开负载均衡的处理。
将七层HTTP监听改为四层TCP监听。
为什么在HTTP请求的头部增加了Transfer-Encoding: chunked字段?
现象:
将域名解析到七层负载均衡的服务地址后,从本地主机访问域名时发现HTTP请求的头部增加了一个Transfer-Encoding: chunked字段,但是从本地主机直接访问后端服务器时是没有这个字段的。
原因:
这是由于七层负载均衡基于Tengine反向代理实现。Transfer-Encoding字段表示Web服务器如何对响应消息体编码,例如Transfer-Encoding: chunked表示Web服务器对响应消息体做了分块传输。
在四层负载均衡服务中,负载均衡仅转发流量,不存在该字段。
怎么配置CLB监听以支持WebSocket协议?
CLB的HTTP监听默认支持WebSocket协议。更多信息,请参见CLB使用WebSocket协议实现信息实时推送。
相关文档
在实际生产环境中,建议您使用HTTPS进行加密传输,具体操作可参考添加HTTPS监听。
后端服务器组的操作,您可参考:
健康检查原理,您可参考CLB健康检查。配置健康检查参数的详细介绍,您可参考配置和管理CLB健康检查。
负载均衡调度算法介绍,您可参考负载均衡调度算法介绍。
如果您需要为HTTP监听添加域名或URL的转发策略,请参见基于域名或URL路径进行转发。
当您使用HTTP监听时,如果您需要后端服务器通过CLB获取客户端真实IP地址,您可参考教程通过CLB七层监听获取客户端真实IP进行配置。