- 计算
- 网络
- 存储与CDN
-
数据库
-
云数据库 RDS MySQL
- 产品概述
- 产品定价
- 快速入门
- 操作手册
- 案例实践
- API文档
-
常见问题
- 如何访问MySQL实例?
- MySQL实例的安全性如何?
- 如何向MySQL实例中导入数据?
- 如何向MySQL实例中导出数据?
- 如何创建新用户并授予权限?
- QPS是如何统计的?
- 什么是内存溢出?
- 默认的最大连接数是多少?
- 如何查看数据库运行状态?
- 如何查看MySQL实例的SlowLog?
- 如何修改MySQL实例的配置参数?
- 如何安装和卸载插件?
- 如何使用MySQL-Proxy使MySQL实例可以通过外网访问?
- 何查看MySQL实例的各项监控指标?
- 是否可以查看云数据库运行状态?
- 默认的配置是针对哪种存储引擎优化的?
- 如何在云主机上搭建云数据库从库并进行主从同步呢?
- 如何正确设置字符集?
- 如何查询MySQL实例的客户端和服务器端版本
- 相关协议
- 云数据库 RDS PostgreSQL
- 云数据库 Redis
- 云数据库 MongoDB
- 分布式数据库 InDDB
- 云数据库 Memcache
-
云数据库 RDS MySQL
- 安全
- 人工智能
-
大数据
- ES服务 Elasticsearch
- 数据仓库 DW
- 托管Hadoop
- 管理和监控
-
API
-
对象存储OSS
- 创建Bucket-CreateBucket
- 获取Bucket信息-DescribeBucket
- 更改Bucket属性-UpdateBucket
- 删除Bucket-DeleteBucket
- 前缀列表查询 – PrefixFileList
- 上传文件 – PutFile
- 表单上传 – PostFile
- 秒传文件-UploadHit
- 下载文件-GetFile
- 查询文件基本信息-HEADFile
- 删除文件 – DeleteFile
- 初始化分片 – InitiateMultipartUpload
- 上传分片 – UploadPart
- 完成分片 – FinishMultipartUpload
- 放弃分片 – AbortMultipartUpload
- 查看配额状态-GetUFileQuota
- 查询配额支付价格-GetUFileQuotaPrice
- 查看配额使用报表-GetUFileReport
- 获取配额信息-GetUFileQuotaInfo
- 获取已上传成功的分片列表-GetMultiUploadPart
- 更新令牌-UpdateUFileToken
- 删除令牌-DeleteUFileToken
- 获取令牌信息-DescribeUFileToken
- OSS 错误码列表
- 操作文件的Meta信息 – OpMeta
- API文档综述
-
弹性公网IP EIP
- 1、申请弹性IP-AllocateEIP
- 2、获取弹性IP信息-DescribeEIP
- 3、更新弹性IP属性-UpdateEIPAttribute
- 4、释放弹性IP-ReleaseEIP
- 5、绑定弹性IP-BindEIP
- 6、解绑弹性IP-UnBindEIP
- 7、调整弹性IP带宽-ModifyEIPBandwidth
- 8. 修改弹性IP出口权重-ModifyEIPWeight
- 9. 获取弹性IP价格-GetEIPPrice
- 10. 获取弹性IP带宽改动价格-GetEIPUpgradePrice
- 11. 获取弹性IP计费方式-GetEIPPayMode
- 12. 设置弹性IP计费方式-SetEIPPayMode
- 13. 申请内网虚拟IP-AllocateVIP
- 14. 获取内网虚拟IP信息-DescribeVIP
- 15. 释放内网虚拟IP- ReleaseVIP
- 16. 创建带宽包-CreateBandwidthPackage
- 17. 获取带宽包信息-DescribeBandwidthPackage
- 18. 删除带宽包-DeleteBandwidthPackage
- 19. 开通共享带宽-AllocateShareBandwidth
- 20. 获取共享带宽信息-DescribeShareBandwidth
- 21. 调整共享带宽-ResizeShareBandwidth
- 22. 关闭共享带宽-ReleaseShareBandwidth
- 23. 将EIP加入共享带宽-AssociateEIPWithShareBandwidth
- 24. 将EIP移出共享带宽-DisassociateEIPWithShareBandwidth
- 25. 获取带宽用量-DescribeBandwidthUsage
- 26. 更新防火墙属性-UpdateFirewallAttribute
- 27. 获取防火墙信息-DescribeFirewall
- 28. 应用防火墙-GrantFirewall
- 29. 错误码
-
云服务器ECS
- 1、获取VNC登录信息-GetUHostInstanceVncInfo
- 2、启动云服务器-StartUHostInstance
- 3、重启云服务器-RebootUHostInstance
- 4、关闭云服务器-StopUHostInstance
- 5、获取云服务器业务组列表-DescribeUHostTags
- 6、字段规范
- 7、删除云服务器-TerminateUHostInstance
- 8、重置云服务器密码-ResetUHostInstancePassword
- 9、修改云服务器业务组-ModifyUHostInstanceTag
- 10、修改云服务器名-ModifyUHostInstanceName
- 11、获取挂载磁盘的升级价格-GetAttachedDiskUpgradePrice
- 12、修改云服务器配置-ResizeUHostInstance
- 13、获取升级配置价格-GetUHostUpgradePrice
- 14、创建云服务器-CreateUHostInstance
- 15、移除硬件隔离组-LeaveIsolationGroup
- 16、创建硬件隔离组-CreateIsolationGroup
- 17、删除自制镜像-TerminateCustomImage
- 18、创建自制镜像-CreateCustomImage
- 19、导入镜像-ImportCustomImage
- 20、修改云服务器备注-ModifyUHostInstanceRemark
- 21、修改挂载的磁盘大小-ResizeAttachedDisk
- 22、模拟服务器掉电-PoweroffUHostInstance
- 23、重装系统-ReinstallUHostInstance
- 24、获取镜像列表-DescribeImage
- 25、获取云服务器价格-GetUHostInstancePrice
- 26、获取云服务器信息-DescribeUHostInstance
- 27、普通机型开启CDP-UpgradeToArkUHostInstance
-
对象存储OSS
- 用户提醒
- 服务等级协议(SLA)
- 企业上云常见问题
- 其他协议
- 云市场
- 开发者
- 账户管理
-
1. SLB支持哪些协议?对于web应用, HTTP和TCP选哪个更好?SLB VServer可以创建两种模式:请求代理模式和报文转发模式。请求代理模式支持TCP和HTTP(HTTPS)等协议. 对于web应用, 首选HTTP协议, 因为SLB能理解HTTP协议, 从而能更有针对性的进行负载均衡服务, 也可以提供基于HTTP协议的云服务器健康检查。对性能要求非常高的场景下, web应用跑TCP协议有略微的性能优势。报文转发模式则支持TCP协议和UDP协议,性能更强。对性能有需求的用户请优先选择报文转发模式。
2. SLB支持哪些转发规则?哪种更好?
SLB分为请求代理和报文转发两种模式。
● 目前请求代理模式支持轮询、源地址、加权轮询、最小连接数四种算法。
1. 轮询算法下, SLB接收到新的TCP连接后, 依次转给每个后端云服务器。
2. 源地址算法下, SLB会根据TCP连接的源地址,利用一定的哈希算法将请求其转给某台云服务器。之后用户再以相同IP访问, 如云服务器数量不变时,访问还是会落到该台云服务器。
3. 加权轮询算法下,SLB接收到新的TCP连接后,将根据您指定的后端云服务器的不同权重,按照概率分配给各个后端云服务器。
4. 最小连接数算法下,SLB接受到新的TCP连接后,会实时统计SLB到后端云服务器的连接数,选择连接数最低的云服务器建立新连接并发送数据。
● 目前报文转发模式支持轮询、源地址、一致性哈希、源地址(计算端口)、一致性哈希(计算端口)、加权轮询六种算法。
1. 轮询算法。同上。
2. 源地址算法。同上。
3. 一致性哈希算法。一致性哈希算法是根据源目的IP,使用一致性哈希算法的结果选择后端云服务器。如果增加或者删减后端云服务器,仅仅会影响小部分连接。
4. 源地址(计算端口)算法。SLB会根据TCP连接的源地址和源端口,利用一定的哈希算法将请求其转给某台云服务器。
5. 一致性哈希(计算端口)算法。根据源目的IP、源目的端口,使用一致性哈希算法的结果选择后端云服务器。如果增加或者删减后端云服务器,仅仅会影响小部分连接。
6. 加权轮询算法。同上。
一般情况下,使用轮询算法就可以满足绝大多数负载均衡场景的需求, 您也可以根据自己的业务场景选择恰当的算法。
3. SLB的会话保持是什么?服务端插入与用户定义的区别是什么?
会话保持是SLB提供的高级功能,可以在轮询等负载均衡算法下,保证同一个源的请求,能够落在相同的后端云服务器上。
请求代理模式下,会话保持功能是利用cookie实现的。SLB会向源端写cookie,并根据请求带有的cookie信息,直接将请求送给对应的后端云服务器。服务端插入指, 由负载均衡生成cookie的key. 用户定义指由用户指定特征cookie的key.
报文转发模式下,会话保持功能是基于连接表实现的。
4. SLB是否会宕机?
SLB采用集群架构,基于跨可用区的分布式部署,利用BGP+ECMP实现集群的自动容灾,保证在可用区级别的灾难下,依旧可以正常工作。
5. SLB是否有性能的限制,例如带宽、请求数, 连接数?
SLB的带宽是存在上限的,其带宽由EIP的带宽决定。由于SLB服务器的性能限制,单个SLB实例能够承载的带宽上限为4Gbps左右。
如果您使用的是SLB的请求代理模式,则每个SLB实例能支持HTTP请求的每秒新建连接数上限为8万;HTTPS每秒新建连接数上限为8千。并发连接数上限约为100万。
如果您使用的是SLB的报文转发模式,则每个SLB实例能够支持40万每秒新建连接数,1000万包量,超过5000万并发连接。
6. 为什么对SLB压测时会出现连接失败?
通常情况下,在使用Linux操作系统作为压测模拟客户端时,当压测性能达到SLB极限前,不会出现连接失败的情况。
但对于使用Windows作为压测的模拟客户端时,可能会出现TCP连接失败的问题。这是由于在压测场景下,Windows系统会快速复用客户端IP和端口发起TCP连接的建立,而在被压测SLB的后端Linux服务节点上TCP协议栈中,以相同的源地址及端口所建立的TCP连接可能尚未被释放完毕,若此时如果 "新建连接的序列号" 大于 "已存在连接的序列号",Linux服务节点就会认为新建连接的SYN请求是已存在连接的重传,从而导致新的TCP连接建立失败。
所以在对SLB进行压测时,请尽量使用Linux作为压测模拟客户端,如果必须使用Windows系统作为压测模拟客户端,则需添加系统注册表中关于TCP时间戳的选项,该选项默认在Windows系统中是未激活的,具体配置参见:windows帮助文档:
https://technet.microsoft.com/en-us/library/cc938205.aspx
7. web console中的"运行"状态, 是指什么? 怎样知道后端某台服务器的状态?
"运行"是指整个负载均衡的状态, 只要后端服务器有一台存活, 负载均衡还是运行状态. 后端服务器的状态通过绿色/红色指示灯表示. 要注意的是, 后端状态由负载均衡健康检查确定. 如果健康检查失败, 即使服务器还能ping通, 也认为是宕机。
8. 为什么我使用了轮询, 但后端web server的日志中计算出的请求数不同?
负载均衡的轮询算法是针对连接的。同一个TCP连接,不会被同时负载到两台后端服务器。如果同一个连接上会发送数量不确定的多个请求,则可能会导致后端服务器上统计到的请求数不同。
9. 目前SLB提供哪些监控信息?
负载均衡提供出口带宽,VServer连接数,每秒新建连接数,包量,带宽以及后端节点健康检查监控。
10. SLB是否支持SSL, 我该如何配置?
支持SSL协议. 目前有两种可用的SSL支持模式:
1、SSL Offloading, 即将SSL密钥配置在负载均衡设备上, 在请求量十分巨大时, 使用特殊的硬件设备优化SSL处理, 减少后端服务器的CPU压力. 缺点是需要把SSL密钥交给负载均衡设备, 降低安全性. 在这种模式下, 请将VServer的端口配置为443(或您自定义的SSL端口), 绑定SSL证书到VServer, 后端云服务器的端口为正常服务监听的端口(例如HTTP服务时, 云服务器池中的后端云服务器请监听在80).
2、后端云服务器处理SSL证书. 在这种模式下, 请配置VServer的协议为TCP协议, VServer端口配置为443(或您自定义的SSL端口), 服务器池中的后端云服务器也需要监听在443端口(或您自定义的SSL端口).
11. SLB目前是proxy模式还是类似LVS采用的NAT模式的?
SLB的请求代理模式是proxy模式,而报文转发则是DR模式。
12. 我想要开启SLB的X-Forwarded-For,以便获取客户端的源IP,请问应该如何设置?
目前SLB已经默认开启了x-Forwarded-For选项,以http服务为例,只需要在配置VServer的时候选择http模式即可。如果服务为https,则需要选择https模式,并上传证书绑定到该VServer上。
13. SLB后的HTTP服务, 如何配置才能取到客户端IP?
采用标准的X-Fowarded-For字段即可获取, 在web服务器上修改日志的格式即可.
# Nginx示例
log_format upstream '$time_iso8601 $http_x_forwarded_for $host $upstream_response_time $request $status $upstream_addr';
# Apache示例
SetEnvIf REMOTE_ADDR "(.+)" CLIENTIP=$1
SetEnvIf X-Forwarded-For "^([0-9.]+)" CLIENTIP=$1
LogFormat "%{CLIENTIP}e %D %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" trueip_combined
CustomLog logs/access_log trueip_combined
# tomcat 的server.xml文件修改如下参数:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="tomcat_access."
suffix=".log"
pattern="%{X-FORWARDED-FOR}i %l %u %t %r %s %b %D %q %{User-Agent}i %T" resolveHosts="false"/>
</Host>
14. 经常发现SLB后端云服务器的访问日志中有大量的内网IP访问,请问是正常访问么?
这是正常的,因为 SLB在请求代理模式下,对后端云服务器转发请求时,使用的是 SLB的内网代理IP。例如,用户在北京二的后端云服务器访问日志中发现大量来自 10.10.251.0/24 网段的访问,实际上就是北京二 SLB 的内网代理 IP。 SLB 在各个区域下的的网段分别是:
北京1:10.46.192.0/18
北京2:10.46.192.0/18
请确保 SLB 后端云服务器的防火墙能够允许对应网段的访问,否则可能会造成该服务器无法正常提供服务。
15. 我想禁止某些源地址访问我的后端服务器,SLB能做到访问控制吗?
目前SLB暂时不能做到防火墙功能,只能针对端口进行管理,但是可以通过修改Web server的配置对来源地址进行限制。 由于在SLB的HTTP模式下,真实源地址保存在HTTP消息的"X-Forwarded-For"字段中,目前大部分Web server对该字段都提供了屏蔽功能。 所以,如果用户急需要对某些源地址进行屏蔽,可以参考以下配置文件范例:
● 配置Apache屏蔽某源地址
参考下面的内容修改配置文件:
<Directory "/var/www/html">
#忽略其他配置
Order deny, allow
SetEnvIf X-Forwarded-For "^(192\.168\.0\.1)$" deny1
SetEnvIf X-Forwarded-For "^(172\.16\.0\.1)$" deny2
Deny from env=deny1
Deny from env=deny2
</Directory>
"Order deny, allow"的顺序可以根据使用方式自定义。 "SetEnvIf"用来定义一个环境变量。这里将"X-Forwarded-For"字段作为一个变量,并使用了一个正则表达式匹配某IP(192.168.0.1)。 后续的Deny将根据该变量将所匹配IP进行屏蔽。
● 配置Nginx屏蔽某源地址
参考下面的内容修改配置文件:
set_real_ip_from 10.10.192.0/18;
real_ip_header X-Forwarded-For;
deny 192.168.0.1
其中"set_real_ip_from"资源的"10.10.192.0/18"IP地址为北京二可用区C的SLB所在网段地址。 nginx会将来源为该网段的"X-Forwarded-For"作为真实IP地址。 deny后面的IP,既为所需要屏蔽的IP地址。
16. 我想要使用websocket,请问如何支持?
SLB默认支持websocket协议。
17. 内网SLB的IP地址为何无法ping通?
内网SLB仅保证支持同子网能ping通,您可以依靠端口的测试来确认内网SLB是否配置和工作正常。
18. SLB报文转发监听端口和后端服务器监听端口不一致怎么办?
可以通过VM内配置IpTables端口转发规则实现,具体步骤如下:
1、修改/etc/sysctl.conf配置文件,设置 net.ipv4.ip_forward = 1 默认是0。
2、关闭防火墙 service iptables stop。
3、配置规则:
iptables -t nat -A PREROUTING –d $vip_ip -p tcp --dport $ulb4_port -j DNAT --to-destination $vip_ip:$vm_port 其中:$vip_ip指负载均衡器的内网IP,$ulb4_port指ulb4的监听端口,$vm_port为后端服务器的监听端口 例:负载均衡器的内网IP为:10.10.10.10,ulb_4监听端口为80,后端服务器监听端口为8101,则规则为:
iptables -t nat -A PREROUTING -d 10.10.10.10 -p tcp --dport 80 -j DNAT --to-destination 10.10.10.10:8101 4、保存配置:service iptables save
5、启动iptables :service iptables start