Citrix ADC

API方法

您可以使用API方法来确定性能最佳的GSLB服务。GSLB的API方法使用REST API来确定性能最佳的GSLB服务。

在API方法中,当GSLB从客户端接收到DNS请求时,它根据指定的规则对请求进行评估。如果GSLB遇到HTTP callout表达式,则SYS。HTTP_CALLOUT (<名称>),它调用对HTTP调出代理的REST API请求。GSLB使用来自HTTP调出代理的响应来决定性能最佳的服务。在DNS响应中,GSLB将性能最好的服务的IP地址返回给客户端。

通过命令行方式配置GSLB API方法

配置GSLB API方法的方法如下:

  1. 配置HTTP调出。

    有关更多信息,请参见配置HTTP调出

    在命令提示符下,输入:

    添加策略httpCallout  [-IPAddress ] [-port ] [-vServer ] [-returnType ] [-httpMethod (GET | POST)] [-hostExpr ] [-urlStemExpr ] [-headers …][-parameters …][-bodyExpr ] [-fullReqExpr ] [-scheme (http | https)] [-resultExpr ] [-cacheForSecs ] [-comment ] 

    例子:

    添加策略httpCallout -IPAddress 208.111.39.237 -port 443 -returnType TEXT -hostExpr " \ " hopx.gslb.com\ " " -urlStemExpr " \ " /zones/1/customers/92395/apps/6/decision\ " " -headers Authorization(" Basic 19fbe6db-4332-4e3f-a8bc-ee47bdc726f8") -parameters ip(DNS.REQ.OPT.ECS.IP。CLIENT.IP.SRC.TYPECAST_TEXT_T) -scheme https -resultExpr " HTTP.RES.BODY(HTTP.RES.CONTENT_LENGTH).XPATH_JSON(xp%/providers/Val[1]/provider%) " -cacheForSecs 30 
  2. 指定用于负载平衡的API方法。GSLB根据指定的规则评估DNS请求。

    在命令提示符下,输入:

    add gslb vserver   [-lbMethod ] [-backupLBMethod ] -rule  

    例子:

    add gslb vserver vs1 HTTP -lbMethod API -backupLBMethod ROUNDROBIN -rule " sys.http_callout(GSLB_Method_API) " 

使用API作为LB方法集成GSLB和ITM的样例配置

此配置允许GSLB使用思杰智能流量管理(ITM)的互联网可见性方面来确定性能最佳的GSLB服务。

/*启用ns features */启用ns feature lb gslb cs /*这是一个命名表达式,用于HTTP callout,用于结果表达式。*/ add策略表达式exp1 "HTTP.RES.BODY(HTTP.RES.CONTENT_LENGTH).XPATH_JSON(xp%/providers/Val[1]/provider%)"/*这是一个命名表达式,用于HTTP callout,用于主机表达式。*/ add策略表达式exp2 "\"hopx.cedexis.com\"" /*这是配置为请求ITM进行GSLB决策的HTTP callout。*/ add policy httpCallout ITM_OpenMix_API -IPAddress 208.111.39.237 -port 80 -returnType TEXT -hostExpr exp2 -urlStemExpr "\"/zones/1/customers/61770/apps/3/decision\"" " -headers Authorization("Basic a310697a-1d69-48bf-8f36-55742a8e894e") -parameters ip(DNS.REQ.OPT.ECS.IP。TYPECAST_TEXT_T ALT CLIENT.IP.SRC.TYPECAST_TEXT_T)计划http -resultExpr exp1 -cacheForSecs 30 / *添加服务1 * /添加服务干系人98.136.103.24 http 80 -gslb没有maxclient -maxReq 0 cip禁用切实不-useproxyport是的- sp -cltTimeout 180 -svrTimeout 360 -CKA没有-TCPB cmp / *添加服务2 * /添加服务sg2 172.217.194.113 http 80 -gslb没有maxclient -maxReq 0 cip禁用切实不-useproxyport是的- sp -cltTimeout 180 -svrTimeout 360 -CKA没有-TCPB cmp / *添加与服务* /添加服务adns1 10.102.217.106与53 -gslb没有maxclient -maxReq 0 cip禁用切实没有-useproxyport - sp -cltTimeout 120 -svrTimeout 120 -CKA没有-TCPB cmp / *添加1磅vserver服务1 * /添加磅vserver lbvs1 HTTP 10.102.217.116 80 -persistenceType没有-cltTimeout 180 / *加磅vserver 2服务2 * /加磅vserver lbvs2 HTTP 10.102.217.117 80 -persistenceType没有-cltTimeout 180 / *绑定服务1磅vserver 1 * /绑定磅vserver lbvs1干系人/* Bind service 2 to lb vserver 2 */ bind lb vserver lbvs2 sg2 /* Configure API GSLB method on GSLB virtual server to call the HTTP callout. This HTTP callout requests the ITM for the GSLB decision and returns GSLB service name, which should serve the request. */ add gslb vserver vs1 HTTP -lbMethod API -backupLBMethod ROUNDROBIN -rule "sys.http_callout(ITM_OpenMix_API)" -tolerance 0 /* Add GSLB site */ add gslb site site1 10.102.217.106 -publicIP 10.102.217.106 /* Add GSLB service 1 */ add gslb service aws_ec2_ap_south_1_asia_pacific_mumbai_1 10.102.217.116 HTTP 80 -publicIP 10.102.217.116 -publicPort 80 -maxClient 0 -siteName site1 -sitePersistence HTTPRedirect -sitePrefix gs2. -cltTimeout 180 -svrTimeout 360 -downStateFlush ENABLED /* Add GSLB service 2 */ add gslb service aws_ec2_ap_south_1_asia_pacific_mumbai 10.102.217.117 HTTP 80 -publicIP 10.102.217.117 -publicPort 80 -maxClient 0 -siteName site1 -sitePersistence HTTPRedirect -sitePrefix gs1. -cltTimeout 180 -svrTimeout 360 -downStateFlush ENABLED /* Bind the GSLB service 1 to GSLB server 1 */ bind gslb vserver vs1 -serviceName aws_ec2_ap_south_1_asia_pacific_mumbai_1 /* Bind the GSLB service 2 to GSLB server 2 */ bind gslb vserver vs1 -serviceName aws_ec2_ap_south_1_asia_pacific_mumbai /* Bind a domain name to the GSLB virtual server */ bind gslb vserver vs1 -domainName testruchit104.com -TTL 5 
API方法