
簡單來說:
IIS 7+阿帕契湯姆貓7+ isapi_redirect.dll
:
我有一個已部署且正在運行的 Tomcat 應用程序,可在http://localhost:8080/my_app
.
我希望在下面看到相同的內容http://my_app.local
(而不是預設的 Tomcat 網站 [您可以在下面看到])。
我設定了isapi_redirect.dll
,所以現在my_app.local
的內容等於localhost:8080
s,但還不夠,我想映射localhost:8080/my_app
到下面my_app.local
。 (我確實127.0.0.1 my_app.local
在主機檔案中,所以我已經可以打開my_app.local
,但現在它只顯示預設的 Tomcat 網站(與 下可用的相同http://localhost:8080
))。
請閱讀我已經嘗試過的內容:
更長的解釋:
我有IIS 7(7.5.7600.16385) 和阿帕契湯姆貓/7.0.22安裝。
- 我在 Tomcat 中部署了一個應用程式(我們稱之為“
my_app
”),現在可以透過 存取該應用程序http://localhost:8080/my_app
,工作正常。我在 IIS 面板中新增了一個新網站,其中包含部署的 Tomcat 路徑my_app
,如下所示:“c:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\my_app
” - 我綁定了主機名稱
my_app.local
。 - 之後,我配置
isapi_redirect.dll
如下這(或者 那)。 - 現在,當我打開時
http://my_app.local
,我可以看到預設的Tomcat網站(見下文),與下面的內容相同http://localhost:8080/
! (那就是問題所在!!!) - 但在下面
http://my_app.local
我想看到與下面相同的內容http://localhost:8080/my_app
。
我怎樣才能做到這一點?預先非常感謝!
我的設定檔:
- isapi_redirect.properties(我與 c:\tomcat 建立了一個目錄連接,所以這也有效:))
- 工人屬性
- uriworkermap.properties
- 重寫.屬性(空)
更新
我也發現了這個:http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html
情況 B:您需要隱藏發送至應用程式的所有請求的路徑元件。以下是該案例的秘訣,您想要隱藏第一個路徑元件 /myapp。更複雜的操作留給讀者當作練習。首先是Apache httpd情況的解決方案:
- 在轉送到後端之前,使用 mod_rewrite 將 /myapp 新增至所有請求:[...]
- 使用 mod_headers 重寫應用程式可能返回的任何 HTTP 重定向。 [...]
- 再次使用 mod_headers 來重寫您的應用程式可能設定的任何 cookie 中包含的路徑。 [...]
如果您使用的是 Microsoft IIS作為 Web 伺服器,ISAPI 插件提供了一種使用內建功能執行第一步的方法。您定義一個映射文件對於像這樣的簡單前綴更改:
# Add a context prefix to all requests ... /=/myapp/ # ... or change some prefix ... /oldapp/=/myapp/
然後將檔案名稱放入
rewrite_rule_file
註冊表或isapi_redirect.properties
檔案的條目中。在您的uriworkermap.properties
文件中,您仍然需要在重寫之前按原樣映射 URL! [...]
不支援步驟 2(重寫重定向回應)或 3(重寫 cookie 路徑)。
令我驚訝的是,上面寫著“不支援步驟 2(重寫重定向回應)或 3(重寫 cookie 路徑)。”,我不知道這是否仍然屬實,但那又如何?我又被卡住了嗎?
答案1
根據您的目標(容易記住網址?),也許可以重定向my_app.local -> my_app.local:8080/my_app?
這不會隱藏然而,目標站點。
在 my_app.local 設定一個新的 IIS 站點,並讓它重定向到您的 :8080/my_app 應用程式。
http://technet.microsoft.com/en-us/library/cc732930(WS.10).aspx
答案2
這似乎就是您所需要的,URL 重寫和應用程式路由。