【问题标题】:Redirecting from apache2 to tomcat on Ubuntu 16.04 results in tomcat-generated 404在 Ubuntu 16.04 上从 apache2 重定向到 tomcat 会导致 tomcat 生成 404
【发布时间】:2018-02-21 11:47:19
【问题描述】:

我已经在 Apache2 (2.4.18) 上将 mod_proxy 设置为 tomcat (8.5.28) JSF 应用程序 - 两者都在同一台 Ubuntu (16.04) 机器上。这几乎可以正常工作,因为我可以看到重定向正在发生,但是 tomcat 返回了意外的 404。

一些历史:我已经完成了使用 sudo a2enmod proxy、proxy_http、proxy_ajp、rewrite、deflate、headers、proxy_balancer、proxy_connect、proxy_html 启用 mod_proxy 模块的所有常规工作,是的,我已经重新启动了 apache2。

我的网站是 www.goodfoodwaiheke.org(一家非营利性食品合作社)

在 Apache2 中,我使用以下内容设置了虚拟主机文件 /etc/apache2/sites-enabled/goodfoodwaiheke.org.conf:

<VirtualHost *:80>
    ServerName www.goodfoodwaiheke.org

    ProxyRequests Off
    ProxyPreserveHost On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass / http://localhost:8080/coop
    ProxyPassReverse / http://localhost:8080/coop
</VirtualHost>

我已通过 sudo e2ensite goodfoodwaiheke.org 启用虚拟主机

在浏览器中,我转到http://www.goodfoodwaiheke.org。从 Apache2 到 Tomcat 的重定向似乎有效,因为浏览器的 url 更改为 http://www.goodfoodwaiheke.org/coop/。这很好,因为已部署(工作)的 Tomcat 应用程序位于 coop.war 中。但是,我得到一个 Apache Tomcat 生成的 404 错误。消息是“/coopcoop/”,描述是“源服务器没有找到目标资源的当前表示或不愿意透露存在的表示。”

如果我使用 Ubuntu 框上的浏览器转到代理传递地址 (http://localhost:8080/coop),它会调用 JSF 应用程序。我觉得 404 消息中可能有一个线索,它报告“/coopcoop/”。这几乎肯定是返回 404 的原因,但我不知道它为什么试图访问“coopcoop”资源。

我已经尝试了几乎所有我能想到的东西,如果有任何提示,我将不胜感激。

【问题讨论】:

    标签: ubuntu apache2 tomcat8 mod-proxy


    【解决方案1】:

    我得到了这个工作,并发布它以防它帮助其他人。我在 ProxyPass 和 ProxyPassReverse 地址的末尾添加了一个 /。我还将 ServerAlias 定义为 goodfoodwaiheke.org(即没有 www)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多