繁体   English   中英

Apache to tomcat代理不起作用

[英]Apache to tomcat proxy is not working

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

Tomcat的直接URL是-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:在配置Apache之前,您应该启用必要的模块。

a2enmod proxy
a2enmod proxy_http

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

<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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM