Apache到tomcat代理无法正常工作

时间:2016-10-11 12:59:14

标签: apache tomcat mod-proxy

我有apache 2.4和1个tomcat(连接器端口--8081和AJP - 8009)服务器(都在同一个linux机器上),我在webapps目录中有一个名为“MyApp”的应用程序文件夹。

Tomcat直接网址是 - http://localhost:8081/MyApp/MyApp - >此链接加载正常并显示图像,jquery和js工作正常。

我使用mod_proxy代理所有来自apache的tomcat请求,如下所述 -

ProxyPass / MyApp ajp:// localhost:8009 / MyApp / MyApp

ProxyPassReverse / MyApp ajp:// localhost:8009 / MyApp / MyApp

现在,当我尝试通过Web服务器URL访问它时,URL会加载但是/ u01 / tomcat / webapps / MyApp目录中的图像,css,jquery不起作用。

如果我尝试加载图片的直接网址,例如 - http://localhost/MyApp/images/logo.jpg则无效,

在图像的正文中,我看到了 -

HTTP状态404 - /MyApp/MyApp/images/incidentReport.jpg 请参阅上面一行,它再添加一个''MyApp'来获取图像

另一方面,tomcat URL [localhost:8081 / MyApp / images / logo.jpg]加载正常。

可能是什么问题?该应用程序的开发人员设计它应该使用双“MyApp”,即localhost:8081 / MyApp / MyApp

我还需要在webserver / tomcat上做些什么来实现这项工作?

1 个答案:

答案 0 :(得分:2)

您需要按照以下步骤操作:

步骤1:在配置Apache之前,您应该启用必要的模块。

a2enmod proxy
a2enmod proxy_http

第2步:接下来,您将修改000-default.conf内的默认配置文件/etc/apache2/sites-enabled以设置“代理”功能。

<VirtualHost *:*>
    ProxyPreserveHost On
    ProxyPass / http://0.0.0.0:8081/
    ProxyPassReverse / http://0.0.0.0:8081/
    ServerName localhost
</VirtualHost>

第3步:接下来,您将修改server.xml文件。

<Host name="www.drew-jocham.com" appbase="webapps"
        unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

        <Valve className="org.apache.catalina.valves.AccessLogValve"
                 directory="logs"  prefix="resumesite_log." suffix=".txt"
                 pattern="common"/>
        <Context path="" docBase="/MyApp/MyApp" debug="0" reloadable="true"/>

</Host>

完成配置后,您需要重新启动云服务器才能使更改生效。执行以下命令重新启动Apache:service apache2 restart

就是这样!

了解详情:https://medium.com/@ldclakmal/deploy-a-java-web-application-in-digitalocean-882226dcdbd5