我正在运行tomcat,我想要更改默认的webroot,以便它指向另一个位置。有没有办法找出运行tomcat的是什么,或者默认的webroot设置在哪里,因为我找不到httpd.conf,我认为这是通常设置的地方?
干杯,
阿列克谢·布鲁。
**更新:**
我已经很长时间没有看过这个问题了,我都忘了。最后,我们使用Apache HTTPD接受来自端口80的请求。在那里,我们在/etc/httpd/conf/virtual-hosts/default.conf文件中设置了webroot和ProxyPass规则(也可以在/etc/httpd/conf/httpd.conf中设置这些规则)。在那里,我们有几个tomcat实例在运行,它们都托管在不同的端口上,这些端口都是在apache-tomcat-x/conf/server.xml中设置的。
当我写这个问题时,我正在尝试设置一个新的tomcat实例来运行开发中的应用程序,系统告诉我需要更改webroot才能访问我的应用程序,这是不正确的。相反,我需要的是包含一个ProxyPass规则,这样当我的应用程序名称在URL中被识别时,HTTPD会将请求发送到正确的tomcat实例进行处理。例如。
www.domain.com/myApplication
In /etc/httpd/conf/virtual-hosts/default.conf
ProxyPass /myApplication/ ajp://127.0.0.1:<ajp_port>/myApplication/
ProxyPassReverse /myApplication/ ajp://127.0.0.1:<ajp_port>/myApplication/在apache-tomcat-x/conf/server.xml中设置ajp_port的位置。我需要确保没有端口与其他tomcat实例冲突,所以请记住检查所有端口,即关闭、HTTP、带SSL的HTTP、AJP等。
发布于 2012-06-07 18:48:17
Tomcat不使用httpd.conf,这是一个apache文件。各个webapp的位置保存在各自的web.xml文件中,但所有配置的位置都在../tomcat6/conf/server.xml和web.xml中
它是你想要移动的文件的来源,还是它编译和执行它们的地方?
发布于 2012-06-07 23:11:21
正如@Woody所说,Tomcat不使用httpd.conf文件:这是Apache httpd的事情(httpd是web服务器,Tomcat是Java应用服务器)。
您没有提到您使用的操作系统或包管理软件(例如yum、apt等)因此,我将向您提供一般信息,就好像您是直接从apache.org下载并安装Tomcat一样(出于多种原因,我通常建议人们这样做)。
Tomcat将其服务器范围的配置保存在Tomcat基础安装目录中的conf/server.xml文件中(为方便起见,通常称为$CATALINA_BASE ):在这里,您可以配置连接器的类型(例如,HTTPS、AJP等)。要使用的端口以及它们应该侦听的端口、集群配置、会话持久性、全局JNDI和领域资源。还有conf/web.xml和conf/context.xml文件,它们定义了部署在Tomcat实例上的所有webapp的默认值,但是最好不要使用这些文件,除非你有很好的理由修改它们。
当你想要部署一个webapp (在默认配置下)时,你所需要做的就是将一个.WAR文件放到$CATALINA_BASE/webapps/目录中,然后webapp将被部署到一个“上下文路径”(也就是URL前缀)中,该路径与文件名减去".WAR“后缀相匹配。因此,如果您有一个名为mygreatwebapp.war的WAR文件,那么将部署它,以便您的客户端可以通过http://yourhost/mygreatwebapp/访问它。您可以为WAR文件指定一个特殊的名称,使其具有空的上下文路径:如果您将WAR文件命名为ROOT.war (大小写重要),则可以通过http://yourhost/访问您的WAR应用程序。(如果您更愿意使用爆炸式WAR目录而不是WAR文件,则以上所有内容仍然适用,只是目录没有.war扩展名)。
根据你最初的问题,听起来你想做的就是将一个ROOT.war文件放到$CATALINA_BASE/webapps中(或者替换已经存在的文件):这将把你想要的任何webapp部署到你可能称之为"default webroot“的URL空间中。
更新如果你想为一个主机更改所有WAR应用所在的目录,你可以修改$CATALINA_BASE/conf/server.xml并将<Host>的appBase属性更改为指向,比方说,/cfusion/main/www/。这将把/cfusion/main/www/中的所有WAR文件和目录部署为单独的WAR应用。
如果您只想从任意位置为单个webapp提供服务,您可以在$CATALINA_BASE/conf/[EngineName]/[HostName]/[appname].xml下创建一个部署文件。这是一个与META-INF/context.xml类似的标准文件,其中包含一个<Context>元素,但您必须指定一个指向您的webapp应用程序的docBase (例如/cfusion/main/www/mywebapp)。
https://stackoverflow.com/questions/10928516
复制相似问题