2010-03-23 85 views
1

是否可以使用Tuckey's URL Rewrite重寫爲不同的Tomcat實例? 我有使用crossContext="true"重寫到同一個tomcat實例上的不同servlet,但我們的生產服務器有多個正在運行的tomcat實例,我想重寫其中的一個呢?我可以對不同的Tomcat實例進行URL重寫嗎?

如果使用URL Rewrite過濾器是不可能的,還有其他的方法嗎?

謝謝。

+0

你的Tomcat實例前面是否有Apache? – 2010-03-23 22:57:51

+0

我在做生產,而不是在我的開發實例 – RodeoClown 2010-03-23 23:25:52

+0

如果生產使用Apache,那麼你應該去mod_proxy或mod_jk路線,並開始在開發環境中使用Apache。 – 2010-03-23 23:27:37

回答

1

你不能簡單地重寫到另一個實例。您必須從另一個實例獲取內容(例如,使用`new URL(「http://localhost:8081/foo」).openConnection()....')或使用30x重定向重定向客戶端。如果您的Tomcats前有代理,則可以將其配置爲直接解析重定向,而不是將其發送給客戶端。

1

如果要代理請求,則需要在Apache中使用mod_jk或mod_proxy將請求代理到其他計算機。如果你可以發出重定向,那麼只要使用URL重寫就可以正常工作。

+0

如果我正確地理解了這個問題,Apache不是一個選項,因爲請求已被轉發到Tomcat實例。它可以直接從代理重定向到正確的實例,無論如何這個問題或多或少都會過時。 – sfussenegger 2010-03-23 23:01:52

+0

我暗示他需要將Apache放在他的Tomcat實例前,然後用Apache處理代理。 – 2010-03-23 23:08:51