2015-06-17 65 views
1

我的Domino Web服務器有一個XPage應用程序出現問題,它放置在某個反向代理的後面。問題是,代理將所有請求從諸如h2tps:// organization/test_server /的URL轉發到Domino Web Server。帶反向代理的Domino Xpages

這使得應用程序中的所有鏈接變得更加複雜。我不知道如何解決它。

例如,登錄就會被服務器h2tps重定向://organization/names.nsf登錄,而不是h2tps://organization/test_server/names.nsf登錄

你有什麼想法如何解決它?

回答

3

當使用反向代理時,我們建議保持原始URL不變。由於許多重定向,Ajax請求,cookie與URL密切相關,如果URL發生更改,幾乎必須去修改代碼。

這個問題在Domino中尤其嚴重,因爲在絕對路徑中會使用很多Javascript代碼,例如/names.nsf。通常,Java應用程序的比較將使用相對路徑(例如../login)。

實際的方式來實現URL不變:映射原始Domino服務器的域名(例如test.domino.xxx),以反向代理服務器,並通過HTTP HOST頭反向代理服務器來確定轉發到後端服務器,而不需要添加額外的路徑(例如test_server)。

在IBM WebSeal示例中,此配置稱爲virtual host junctions

1

您是否在Domino服務器上創建了一個站點文檔?

+0

是的,我創建了一個。 我在服務器上擁有管理員權限,可以用它做任何事情。 但我無法控制反向代理。 – Tolbxela

+1

你將需要與代理人談一談。他們忘記打開重新編寫照顧網址的重寫規則。這是一項代理工作。不要試圖「繞過」它 – stwissel

0

我已經用一些努力解決了這個問題。

  1. 起初,我已將數據庫移動到文件夾/ test_server /中。
  2. 然後我改變了所有的靜態HTML鏈接來使用/ test_server /。
  3. 使用選項xsp.application.context.proxy = test_server我已更改內部XPages和擴展庫資源的 路徑。
  4. 最後,我必須在Domino 上添加一些替換規則以防止/ test_server/test_server /之類的重複路徑。

現在它似乎運作良好。

代理團隊的建議是在Web服務器上使用url重寫。毫無疑問,可以用Domino來完成,但需要開發一個DNSAPI插件(用C語言編寫的dll)。它並不像我這樣輕鬆的任務。

無論如何,非常感謝您的幫助!