通常情况下,API管理分析可以通过客户端IP地址来确定地理位置。如果分析显示地理位置始终为“其他”,则可能是客户端IP地址无法正确解析。要解决此问题,可以尝试将API管理的设置中“代理服务器”选项更改为“在客户端侧解析IP地址”,这样可以保留原始客户端IP地址。示例代码如下:
{
"properties": {
"proxy": {
"forward-request": {
"to": "backend"
},
"set-backend-service": {
"base-url": "https://contoso.com/api/services/"
},
"backend-service": {
"url": "https://contoso.com/api/services/",
"forward-headers": [
"Ocp-Apim-Subscription-Key"
],
"forward-query-strings": true
},
"add-context-parameters": {
"parameters": {
"client-ip-address": {
"location": "client",
"value": "@(context.Request.MatchedParameters["c-ip"])",
"resolver": {
"name": "CloudResolver",
"arguments": {
"fields": {
"locality": "city",
"region": "region",
"country": "countryCode"
}
}
},
"protocols": "http"
}
}
}
}
}
}