华为云用户手册

  • 操作场景 在大型网络应用中,通常会使用多台服务器提供同一个服务。为了平衡每台服务器上的访问压力,通常会选择采用负载均衡来实现,提高服务器响应效率。 云解析服务支持解析的负载均衡,也叫做带权重的记录轮询,通过为不同解析记录配置“权重”参数来实现。 当您的网站拥有多台服务器,每台服务器具有独立的IP地址。通过解析的负载均衡可以实现将不同用户的访问请求按比例分配到各个服务器上。 例如,某网站的域名为“example.com”,部署了3台服务器,对应的IP地址分别为:192.168.1.1、192.168.1.2、192.168.1.3。 在不配置“权重”参数的情况下,可以配置1条A类型记录集,将记录集值设置为3个IP地址。 在这种配置中,不同的访问者会随机访问其中1个IP地址。详细信息,请参见当记录值有多个IP地址时,域名是如何解析的?。 在配置“权重”参数的情况下,可以配置3条A类型记录集,记录集值分别设置为3个IP地址。 在这种配置中,通过“权重”参数,可以设置这3条解析记录在解析响应消息中所占比重,实现将用户的访问按比例路由到各个服务器上。 权重解析对解析请求的负载均衡更为精确,本章节将介绍如何配置权重解析。
  • 检查域名的DNS服务器地址是否是华为云DNS 域名的DNS服务器定义了域名用于解析的权威DNS服务器。 如果域名设置的是非华为云DNS服务器地址,则域名无法正常解析。 您可以通过whois查询域名的DNS服务器地址,如图5所示。查看是否为华为云DNS服务器地址。 华为云DNS服务器地址 新版本华为云DNS服务器地址(推荐): ns1.huaweicloud-dns.org ns1.huaweicloud-dns.net ns1.huaweicloud-dns.cn ns1.huaweicloud-dns.com 旧版本DNS服务器地址: ns1.hwclouds-dns.com ns1.hwclouds-dns.net 如需修改域名的DNS服务器地址请参考修改域名DNS服务器地址操作指导。 图5 使用whois查询域名DNS服务器地址
  • 确认是否在24小时内修改过域名的DNS 修改DNS服务器并不能立即生效,域名服务商处NS记录的TTL值通常设置为48小时,假如运营商Local DNS缓存了域名的NS记录,则最长需要48小时才能刷新成新的NS记录,变更为修改后的DNS服务器。 因此,修改域名DNS服务器的生效时间请以域名服务商处的说明为准。在等待修改生效期间,请勿删除域名在原域名服务商处的解析记录,这样即使域名的新DNS没有生效,仍然可以通过访问原DNS进行解析,使域名的解析不中断。
  • 检查权威DNS解析是否生效 执行以下命令检查域名在权威DNS的解析是否生效。 nslookup -qt=类型 域名 权威DNS地址 示例:测试域名example.com在权威DNS的解析是否生效,已使用“ns1.huaweicloud-dns.cn”为例执行如下命令, nslookup -qt=a example123.com ns1.huaweicloud-dns.cn 回显信息如图8所示,example123.com使用权威DNS ns1.huaweicloud-dns.cn的解析已经生效。 如果测试权威DNS解析域名生效,但使用域名访问无法返回正常的IP地址,可能是本地DNS被劫持了,建议执行nslookup -qt=类型 域名 8.8.8.8或nslookup -qt=类型 域名 114.114.114.114命令检查公共DNS解析是否生效。 如果生效建议把本地DNS改成公共DNS,例如8.8.8.8或114.114.114.114。 图8 使用nslookup检查权威DNS的域名解析是否生效
  • 检查域名状态是否正常 域名是DNS解析的入口,购买域名且域名状态正常才能使用DNS解析,如果域名欠费、未实名认证、域名存在争议等serverhold状态,则域名无法解析。 您可以通过whois查询域名的状态,查看域名当前状态、是否被注册、注册日期、到期时间、注册服务商等。如图4所示,使用whois查询域名状态。 您还可以在域名注册控制台查看域名实名认证状态、域名是否欠费等。 域名实名认证操作指导 域名到期续费操作指导 图4 使用whois查询域名状态
  • 排查方式 通过域名网站检测平台一键检测。 图1 域名网站检测 根据检测结果,解决域名实际存在的问题。 详细请参见表1。 图2 查看域名检测结果 表1 常见域名检测问题及解决措施 类型 检测项 错误信息提示 解决措施 域名信息 域名服务商 - - 域名到期时间 域名到期 请联系您的域名服务商进行续费。 在华为云域名服务商注册的域名续费详细请参考域名续费。 域名状态 clientHold或serverHold 解析不生效,请联系您的域名服务商处理。 DNS服务商 是否是华为云DNS服务器地址。 非华为云DNS服务器地址,请联系当前使用DNS服务商处理。 如果需要使用华为云DNS解析,请参考怎样查看并修改域名的DNS服务器地址?。 DNS解析 公共DNS解析结果 未检测到域名的DNS记录。 华为云DNS服务商,请登录DNS控制台创建域名并添加解析记录,详细请参见网站解析。 非华为云DNS服务商,请联系当前使用DNS服务商处理。 域名TTL生效时间 - - 网站信息 网站备案 网站未备案 网站未备案,访问将会被阻断,详细请参考网站备案。 80端口检查 端口不通 请联系您公司的运维人员检查网站配置。 443端口检查 端口不通 HTTP状态码 端口不通,请检查服务器设置 Ping检查 失败 华为云DNS服务商,请登录DNS控制台创建域名并添加解析记录。详细请参见网站解析。 非华为云DNS服务商,请联系当前使用的DNS服务商处理。 工信部黑名单 在黑名单 请联系您的域名服务商解决。 用户根据可能出现的问题自主排查,具体排查思路如下: 以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。 如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。 图3 解析不生效排查思路 检查域名状态是否正常:检查域名是否过期、状态是否正常 检查域名的DNS服务器地址是否是华为云DNS:如果域名设置的是非华为云DNS服务器地址,则无法正常解析。 检查解析记录集的添加是否正确:检查域名解析配置是否正确 确认是否在24小时内修改过域名的DNS:运营商Local DNS缓存了域名的NS记录,则最长需要48小时才能刷新成新的NS记录,变更为修改后的DNS服务器。 检查权威DNS解析是否生效:使用nslookup命令检查域名在权威DNS的解析是否生效 提交工单
  • 如何实现通过多个域名访问同一网站? 通过域名访问网站,需要将域名创建至云解析服务,并为域名配置A类型的记录集,将域名解析至网站的IP地址实现。 实现通过多个域名访问同一网站,则需要为每个域名配置一条取值相同的A类型记录集,如表1所示。 为每个域名配置解析记录的详细步骤,请参见配置网站解析。 表1 记录集配置示例 域名 记录集类型 记录集值 example1.com A 192.168.1.1 example2.com 父主题: 公网域名解析
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:id. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3023", "error_msg" : "The VPC channel does not exist,id:56a7d7358e1b42459c9d730d65b14e59" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • URI POST /v2/{project_id}/apigw/instances/{instance_id}/vpc-channels/{vpc_channel_id}/members/batch-disable 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。 vpc_channel_id 是 String VPC通道的编号
  • 响应参数 状态码: 401 表3 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3022", "error_msg" : "The API version does not exist,id:ee1a5a38d3d3493abf1dc4ed6cacfa0b" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • URI DELETE /v2/{project_id}/apigw/instances/{instance_id}/apis/versions/{version_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。 version_id 是 String API版本的编号
  • 响应参数 状态码: 201 表4 响应Body参数 参数 参数类型 描述 applies Array of AppQuotaAppBinding objects 凭据与凭据配额绑定列表 表5 AppQuotaAppBinding 参数 参数类型 描述 app_quota_id String 凭据配额编号 app_id String 凭据编号 bound_time String 绑定时间 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 201 OK { "applies" : [ { "app_id" : "98df09fb-d459-4cbf-83a7-2b55ca6f3d5d", "app_quota_id" : "c900c5612dbe451bb43cbcc49cfaf2f3", "bound_time" : "2020-09-19T07:43:11.948178051Z" } ] } 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:instance_id. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3093", "error_msg" : "The App quota c900c5612dbe451bb43cbcc49cfaf2f3 does not exist" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • URI POST /v2/{project_id}/apigw/instances/{instance_id}/app-quotas/{app_quota_id}/binding-apps 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。 app_quota_id 是 String 凭据配额编号
  • 响应示例 状态码: 201 Created { "call_limits" : 150, "app_name" : "app_demo", "object_name" : "app_demo", "object_id" : "356de8eb7a8742168586e5daf5339965", "throttle_id" : "3437448ad06f4e0c91a224183116e965", "apply_time" : "2020-08-04T02:40:56.717710961Z", "id" : "a3e9ff8db55544ed9db91d8b048770c0", "app_id" : "356de8eb7a8742168586e5daf5339965", "object_type" : "APP" } 状态码: 400 Bad Request { "error_code" : "APIG.2003", "error_msg" : "The parameter value is too large,parameterName:call_limits. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3004", "error_msg" : "App 356de8eb7a8742168586e5daf5339965 does not exist" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 响应参数 状态码: 201 表4 响应Body参数 参数 参数类型 描述 id String 特殊配置的编号 call_limits Integer 特殊对象在流控时间内能够访问API的最大次数限制 apply_time String 设置时间 app_name String 作用的APP名称 app_id String 作用的APP编号 object_id String 特殊对象的身份标识 object_type String 特殊对象类型:APP、USER object_name String 作用的APP或租户的名称 throttle_id String 流控策略编号 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • URI POST /v2/{project_id}/apigw/instances/{instance_id}/throttles/{throttle_id}/throttle-specials 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。 throttle_id 是 String 流控策略的编号
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 call_limits 是 Integer 流控时间内特殊对象能够访问API的最大次数限制 object_id 是 String 特殊APP的编号或特殊租户的账号ID object_type 是 String 特殊对象类型 枚举值: APP USER
  • 响应示例 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:domain_id. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3020", "error_msg" : "The URL domain does not exist" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • URI POST /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id}/domains/{domain_id}/certificates/detach 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。 group_id 是 String 分组的编号 domain_id 是 String 域名的编号
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 certificate_ids 是 Array of strings 证书的id集合 verified_client_certificate_enabled 否 Boolean 是否开启客户端证书校验。当绑定证书存在trusted_root_ca时,默认开启;当绑定证书不存在trusted_root_ca时,默认关闭。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 authed_nums Integer 已进行API访问授权的APP个数 unauthed_nums Integer 未进行API访问授权的APP个数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 200 OK { "authed_nums" : 7, "unauthed_nums" : 5 } 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:instance_id. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Bad Request { "error_code" : "APIG.3030", "error_msg" : "The instance does not exist;id:eddc4d25480b4cd6b512f270a1b8b341" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 响应示例 状态码: 200 OK { "variable_value" : "192.168.1.5", "env_id" : "7a1ad0c350844ee69479b47df9a881cb", "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "id" : "25054838a624400bbf2267cf5b3a3f70", "variable_name" : "address" } 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:variable_name" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3003", "error_msg" : "Environment 7a1ad0c350844ee69479b47df9a881cb does not exist" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • URI PUT /v2/{project_id}/apigw/instances/{instance_id}/env-variables/{env_variable_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。 env_variable_id 是 String 环境变量的编号
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 variable_value 是 String 变量值支持英文字母、数字、英文格式的下划线、中划线,斜线(/)、点、冒号,1 ~ 255个字符。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 variable_value String 变量值支持英文字母、数字、英文格式的下划线、中划线,斜线(/)、点、冒号,1 ~ 255个字符。 env_id String 环境编号 最小长度:1 最大长度:65 group_id String API分组编号 最小长度:1 最大长度:65 variable_name String 变量名,支持英文字母、数字、英文格式的下划线、中划线,必须以英文字母开头,3~32个字符。在API定义中等于#Name的值#部分(区分大小写),发布到环境里的API被变量值换。 说明: 中文字符必须为UTF-8或者unicode编码。 id String 环境变量编号 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
共100000条