我有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上做些什么来实现这项工作?
答案 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