【问题标题】:How to set up multiple exploded webapps (outside of $CATALINA_BASE/webapps) as ROOT in Tomcat 8?如何在 Tomcat 8 中将多个展开的 webapps($CATALINA_BASE/webapps 之外)设置为 ROOT?
【发布时间】:2021-02-04 17:41:40
【问题描述】:

这是我需要的摘要:

  1. 在一个 Tomcat 8 实例中运行多个应用程序。
  2. 这些应用被分解(未打包为 WAR),需要在 /misc/ 中
  3. 它们需要以 ROOT 身​​份运行(即 URL 末尾没有上下文路径)

我已经设法通过使用 Tomcat 的虚拟主机将多个应用程序作为 ROOT 来执行。在/var/lib/tomcat8/conf/server.xml,我有:

<Host name="qa01" appBase="qa01"
      unpackWARS="true" autoDeploy="true">
    <Alias>qa01.example.com</Alias>
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="qa01_access_log" suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

然后,我将 nginx 配置为:

server {
    listen 80;
    listen [::]:80;
    server_name qa01.example.com;

    access_log /var/log/nginx/qa01-access.log;
    error_log /var/log/nginx/qa01-error.log;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8080/;
    }
}

到目前为止一切顺利,我测试了它,它肯定指向/var/lib/tomcat8/qa01/ROOT/index.html

当我需要这个应用程序改为 /misc/qa01/webapps/ROOT/ 时,问题就来了。

我尝试使用以下内容添加/var/lib/tomcat8/qa01/ROOT/META-INF/context.xml,但没有成功。

<Context docBase="/misc/qa01/webapps/ROOT/">
</Context>

有人知道我做错了什么吗?

【问题讨论】:

    标签: java nginx tomcat tomcat8


    【解决方案1】:

    我建议:

    1. 使用Tomcatwebapps目录中的软链接。指向您部署的 Web 应用程序。假设他们遵循 Java EE Servlet 标准。请阅读此answer

    2. 明智地使用&lt;tomcat-home&gt;/conf/context.xml 配置文件来管理ROOT 上下文。请阅读更多关于context.xmlherehere的信息。

    【讨论】:

    • 谢谢!选项 1 似乎有效,但感觉有点脏,我设法弄清楚我做错了什么。
    【解决方案2】:

    弄清楚我做错了什么(似乎睡个好觉有帮助)。

    我需要这个/var/lib/tomcat8/exampleApp/ROOT/META-INF/context.xml

    <Context path=""
            antiResourceLocking="false" />
    

    那我需要在/var/lib/tomcat8/conf/Catalina/exampleApp/ROOT.xml中配置Context。这实际上指向了我的爆炸 WAR 所在的位置。

    <Context docBase="/misc/qa01/webapps/ROOT/">
    </Context>
    

    【讨论】:

      猜你喜欢
      • 2014-08-28
      • 1970-01-01
      • 2019-08-11
      • 2018-07-09
      • 2011-09-29
      • 2013-06-24
      • 2010-09-20
      • 1970-01-01
      • 2014-01-19
      相关资源
      最近更新 更多