【问题标题】:Domino Xpages with Reverse Proxy带有反向代理的 Domino Xpages
【发布时间】:2015-06-25 21:44:52
【问题描述】:

我在使用 XPages 应用程序的 Domino Web 服务器时遇到问题,该应用程序放置在某个反向代理之后。问题是,代理将来自 URL(如 h2tps://organization/test_server/)的所有请求转发到 Domino Web 服务器。

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

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

您知道如何解决吗?

【问题讨论】:

    标签: proxy xpages lotus-domino


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 是的,我已经创建了一个。我在服务器上有管理员权限,可以用它做任何事情。但我无法控制反向代理。
      • 您需要与代理人员谈一谈。他们忘记打开处理返回的 url 的重写规则。那是代理工作。不要试图“破解”它
      【解决方案3】:

      我已经通过一些努力解决了这个问题。

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

      现在它似乎运行良好。

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

      无论如何,非常感谢您的帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-12
        • 2018-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多