0

我们有一个包含 3 台服务器的集群,前面有负载均衡器(CloudFlare)。当我们在集群中有 2 台服务器(A 和 B)时,一切运行良好,但在我们添加了第 3 台服务器(C)之后,我们注意到了一些奇怪的事情。

其中之一非常重要,我根本不明白它是如何发生的。

我们的 Web 应用程序向自身发出 AJAX 请求,以便取回一些 JSON 数据,如果请求到达新服务器 (C),则响应如下所示:

{
code: 404,
text: "Not Found",
message: "Database context not allowed."
}

我们的应用程序没有抛出这样的错误,所以我在 google 中搜索了一下,注意到它在以下位置被提及:OpenNTF XPagesExtensionLibrary

但是,我们根本不使用 XPage,所以我想知道我们的 AJAX 请求怎么会涉及到这种逻辑。

任何建议和提示将不胜感激。

更新

我的代理的后端代码并不重要(它也可能是一个空代理,我检查了),因为请求没有到达我的代理。

AJAX 调用由 jQuery 触发

let url = "domain.tld/api/key";
let params = {"a": 1};
$.post(url, params, function (data) {
  // some code
},
"json"
).always(function() {
  // some code
});

URL,我怀疑这是一个问题,以 /api/key 开头,我相信这是一个问题(因为端点不是从 /api/ 开始的所有其他 ajax 调用都很好)。

谢谢。

4

1 回答 1

1

认为我们在评论的帮助下(您可以在我的原始帖子下看到)。

显然,有一个 DAS servlet 可以处理从 /api/* 开始的所有请求,并且如果加载了 XPages 引擎,它就会运行。在我的情况下,3 台服务器中有 2 台服务器关闭了 XPage,因此问题仅发生在 1 台服务器上。

解决方案是:

  1. 关闭 XPages(或找到关闭 DAS 的方法)。
  2. 或者将 URL 从 /api/path 更改为其他内容(这就是我们将要做的)。
于 2021-08-02T09:31:16.063 回答