2011-11-04 65 views
1

我最近安裝了Apache w/s + Tomcat,並且使用jk能夠將請求從apache路由到t/c。在網絡上的例子是通常的形式:Apache + Tomcat + jk:在Java EE web應用程序中提供靜態資源

JkMount /*.jsp myTC 

我們在Tomcat的單一實例上運行多個Java EE應用程序(那麼爲什麼使用Apache相信我,我有什麼原因?)。我想我們可以改變的背景下爲每個應用程序的喜歡的東西:

/servlet/application1/ 
/servlet/application2/ 
/servlet/application3/ 

再有這樣的事:

JkMount /servlet/* myTC 

這將請求路由到tomcat正確的,但是,問題依然存在如何服務靜態資源,一個標準的Java EE應用程序:

/webapp-root 
    resources/ 
     css/ 
     js/ 
     images/ 
    WEB-INF/ 
     /usual-folder-structure 

的問題是:

  1. 如何從apache提供資源/文件夾?所有的應用程序都有自己的資源/文件夾。我認爲資源/將不得不在戰爭和apache的doc-root的某個地方居住,但不能找出JkMount字符串。

  2. /servlet/scheme是否是正確的方法?我應該遵循哪些模式?

我會很感激任何幫助,任何指向網絡資源的指針都會很棒,因爲我需要閱讀更多關於此的信息。

回答

0

(1)以下應該足夠:

JkMount /* myTC 
JkUnMount /resources/* myTC 

(2)這是確定的。有很多正確的解決方案。我個人不喜歡URL中的/ servlet /。這是垃圾,特別是在這個時代,網址是網站/網絡應用程序的資產。我用這個方案:

JkMount /* myTC 
JkUnMount /*.css myTC 
JkUnMount /*.ico myTC 
JkUnMount /*.jpg myTC 
JkUnMount /*.js myTC 
JkUnMount /*.png myTC 
JkUnMount /*.xml myTC 
JkUnMount /*.zip myTC 
+0

因此,如果所有的三個應用程序都有各自的靜態資源命名的文件夾在資源/,阿帕奇應該有文檔根目錄/應用1/resouces /,文檔根目錄/應用2 /資源/&文檔根目錄/ application3 /資源/? – kmansoor

+0

是的。每個應用程序應該存在於它自己的DocumentRoot中。除非它是某種設置,3種不同的應用程序共享相同的靜態資源(非常不可靠)。 – cherouvim

+0

是否有可能將我指向基於Web的資源,我可以閱讀更多內容。謝謝。 – kmansoor

相關問題