[英]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.