[英]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.