带反向代理的 Domino Xpages

Domino Xpages with Reverse Proxy

我的 Domino Web 服务器有一个问题,它的 XPages 应用程序位于某些反向代理之后。问题是,代理将来自 URL 的所有请求转发到 Domino Web 服务器,例如 h2tps://organization/test_server/。

这会使应用程序中的所有链接都失效。而且我不知道如何解决它。

例如,登录尝试将被服务器重定向到 h2tps://organization/names.nsf?Login 而不是 h2tps://organization/test_server/names.nsf?Login

您知道如何解决吗?

您是否在 domino 服务器上创建了站点文档?

使用反向代理时,我们建议保持原来的URL不变。因为很多重定向,Ajax请求,cookie都和URL息息相关,如果URL发生变化,几乎都要去修改代码。

这个问题在Domino中尤为严重,因为在很多Java脚本代码中会用到绝对路径,例如/names.nsf。作为比较Java的应用程序一般都会使用相对路径(例如../login)。

实际实现方式URL不变:将原domino服务器的域名(例如test.domino.xxx)映射到反向代理server, 和反向代理服务器通过http HOST header 来判断转发到哪个后端服务器,而不需要添加额外的路径(例如test_server)。

在 IBM WebSeal 示例中,此配置称为 virtual host junctions

经过努力,问题已经解决了

  1. 起初我将数据库移动到/test_server/文件夹中。
  2. 然后我将所有静态 HTML 链接更改为使用 /test_server/。
  3. 选项 xsp.application.context.proxy=test_server 我改变了 内部 XPage 和扩展库资源的路径。
  4. 最后我必须在 Domino 上添加一些替换规则 以防止像 /test_server/test_server/.
  5. 这样的重复路径

现在看来效果不错。

代理团队的提议是在 Web 服务器上使用 url 重写。毫无疑问,它可以用 Domino 完成,但需要开发一个 DNSAPI Addon(一个用 C 编写的 dll)。这对我来说并不是一件容易的事。

总之,非常感谢您的帮助!