2

我正在运行 tomcat,我想更改默认值webroot,使其指向另一个位置。有没有办法找出正在运行的 tomcat 或默认 webroot 的设置位置,因为我找不到我认为通常设置的 httpd.conf?

干杯,

阿列克谢蓝。

**更新:**

很久没看这个问题了,忘记了。最后结果证明我们使用 Apache HTTPD 来接受来自端口 80 的请求。从那里我们在文件中设置了webrootandProxyPass规则/etc/httpd/conf/virtual-hosts/default.conf(这些也可以在 中设置/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/

ajp_port 设置在apache-tomcat-x/conf/server.xml. 我需要确保没有端口与其他 tomcat 实例发生冲突,因此请记住检查所有端口,即关闭、HTTP、带有 SSL 的 HTTP、AJP 等。

4

2 回答 2

2

正如@Woody 所说,Tomcat 不使用 httpd.conf 文件:那是 Apache httpd 的东西(httpd 是 Web 服务器,Tomcat 是 Java 应用程序服务器)。

你没有提到你正在使用什么操作系统或你正在使用什么包管理软件(例如 yum、apt 等),所以我会给你一般信息,就好像你直接从 apache.org 下载并安装了 Tomcat(其中我通常出于多种原因建议人们这样做)。

Tomcat 将其服务器范围的配置保存在conf/server.xmlTomcat 基本安装目录的文件中(为方便起见,通常称为 $CATALINA_BASE):在这里,您可以配置要使用的连接器类型(例如 HTTP、HTTPS、AJP 等)以及使用哪些连接器。他们应该监听的端口、集群配置、会话持久性、全局 JNDI 和领域资源。还有一些文件为部署在该 Tomcat 实例上的所有 webapps 定义默认值conf/web.xmlconf/context.xml但最好不要管这些文件,除非您有充分的理由修改它们。

当你想要部署一个 webapp(在默认配置下)时,你需要做的就是将一个 .WAR 文件放到$CATALINA_BASE/webapps/目录中,webapp 将被部署到一个与名称匹配的“上下文路径”(又名 URL 前缀)中该文件减去“.WAR”后缀。因此,如果您有一个名为 mygreatwebapp.war 的 WAR 文件,那么它将被部署以便您的客户可以在http://yourhost/mygreatwebapp/. 您可以为 WAR 文件指定一个特殊名称,使其具有空的上下文路径:如果您命名 WAR 文件ROOT.war(大小写很重要),那么您的 webapp 可以在http://yourhost/. (如果您更愿意使用爆炸的 WAR 目录而不是 WAR 文件,则上述所有内容仍然适用,只是目录根本没有 .war 扩展名)。

鉴于您最初的问题,听起来您要做的就是将 ROOT.war 文件放入$CATALINA_BASE/webapps(或替换已经存在的文件):这会将您想要的任何 webapp 部署到您可能称之为“默认值”的 URL 空间中网根”。

更新 如果要更改主机的所有 web 应用程序所在的目录,可以修改$CATALINA_BASE/conf/server.xml并更改<Host>'sappBase属性以指向,例如/cfusion/main/www/. 这会将所有 WAR 文件和目录部署/cfusion/main/www/为单独的 webapp。

如果您只想从任意位置提供单个 web 应用程序,您可以在$CATALINA_BASE/conf/[EngineName]/[HostName]/[appname].xml. 这是一个标准文件META-INF/context.xml,它包含一个<Context>元素,除了你必须指定一个docBase指向你的 webapp 的元素(例如/cfusion/main/www/mywebapp)。

于 2012-06-07T15:11:21.337 回答
2

Tomcat 不使用 httpd.conf,它是一个 apache 文件。各个 webapp 的位置保存在它们各自的 web.xml 文件中,但所有配置的位置都在 ../tomcat6/conf/server.xml 和 web.xml

是您要移动的文件来自哪里,还是从哪里编译和执行它们?

于 2012-06-07T10:48:17.040 回答