很多广告阻止列表都针对Application Insights(AI)JavaScript,并且/或者阻止了将其发送回Azure的数据,因此我决定通过与我的Web应用程序相同的域来代理它避免被阻止。
几乎所有功能都可以正常工作,但是AI日志中记录的位置/客户端IP。而不是记录最终用户客户端IP,而是记录所有pageViews和customEvents等的代理IP。
在代理服务器上,我尝试使用客户端IP地址设置X-Forwarded-For
头,但是AI日志中似乎没有什么不同,它仅显示代理IP。我还尝试添加遥测初始化程序来手动设置JavaScript发送的所有数据中的IP:
appInsights.addTelemetryInitializer(envelope => {
envelope.ext.device.ip = ip;
return true;
});
网络跟踪看起来很有希望,但是Application Insights忽略了该字段,仍然仅显示了代理IP。
Microsoft的文档seems to suggest表示其服务器遵守X-Forwarded-For
标头,并且在JS SDK github页面上,似乎表明可以在数据结构中提供IP。看来好像没有用。
我应该如何与AI通信客户端IP?