[英]How to set context path in Tomcat so one could enter the site without appending the deployed folder name?
我在這里閱讀有關Tomcat指南的內容和一些SO問題。 而且我認為我幾乎都在做同樣的事情。 但在某種程度上無法成功。
首先,我必須說我的應用程序部署在我無法控制的共享Tomcat服務器上。 我只是刪除我的.war文件並進行部署。
我試圖將我的應用程序打包為ROOT.war但是沒有用。 管理員告訴我把它打包成我想要的名字,他們會照顧它。 我把它打包為my-application.war並且已經部署但我必須輸入http:// my-host / my-application才能進入網站。
聯系管理員后,他們告訴我他們已經在我的主機中將一個上下文元素放在Tomcat配置文件中,如:
<Context path="" docBase="path of my-application deployed folder"/>
應該將my-application設置為進入my-host
所有請求的默認應用程序。 但它沒有,每當我輸入http:// my-host我得到:
HTTP Status 404 - / The requested resource (/) is not available
但是,當我輸入http:// my-host / my-application時 ,一切正常。 任何關於可能出錯的建議都是絕對值得贊賞的。
更新:
我嘗試按照tomcat文檔中描述的如何使應用程序默認的步驟 。 描述了3種方式,我嘗試了所有三種方式,並且可以在localhost上將我的應用程序成功部署為ROOT。
我還嘗試重現我在遠程服務器上遇到的問題,以便找到原因並將其報告給管理員。 我發現了幾個問題。
無論哪種方式,我無法確切地指出究竟是什么阻止ROOT.war部署,因為這需要訪問Tomcat日志文件和conf文件來檢查我上面描述的情況。
另外,從我看來,我的管理員似乎無法維護Tomcat服務器並找到問題。 所以我決定在與共享服務器掙扎之后使用專用的Tomcat服務器。
在您的問題中,您聲明管理員將上下文設置為:
<Context path="" docBase="path of my-application deployed folder"/>
根據上面的評論,我建議嘗試使用應用程序的相對路徑而不是絕對路徑。
我在我的tomcat服務器上試過這個:
<Context path="/" docBase="my-application/" />
這就是訣竅。
包含Context元素的Host元素實際上設置了一些可能也會影響上下文的參數。 如果它是默認設置,那么相對上下文應該只指向webapps文件夾。 如果它已被更改,結果可能會有所不同。
通常這可以通過以下步驟實現:
但是,我懷疑你能在共享的Tomcat實例上做到這一點。 只有一個應用程序可以作為默認應用程序運行 托管公司可能不會允許它,否則它們允許哪個應用程序成為共享同一個Tomcat實例的許多人的默認設置?
請訪問此鏈接: http : //staraphd.blogspot.com/2009/10/change-default-root-folder-in-tomcat.html
Tomcat的Wiki有一個部分上把應用程序轉換為默認上下文。 但是,為了做到這一點,它意味着對Tomcat服務器的一些控制,這在您描述的共享上下文中可能是不可能的。
如果您能夠在服務器上安裝其他系統,則另一種解決方案是使用NGINX等代理服務器。 這比簡單命名war文件ROOT.war更復雜,但有時它是唯一的選擇。
如果您在服務器上監聽NGINX並且擁有自己的URL,則可以使用HttpProxyModule ,其設置如下:
server {
listen 80;
server_name my.domain.com;
location / {
proxy_pass http://my-host/my-application;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
此外,為了使這項工作,你必須擁有“my.domain.com”網址,它需要與每個人用於共享Tomcat服務器的網站分開。
解決方案的nginx部分是免費的,但是如果你需要注冊一個新網址,然后使用像no-ip.com這樣的東西將它重定向到tomcat服務器,它將花費金錢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.