首页 文章

Apache到tomcat代理不起作用

提问于
浏览
1

我有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不起作用 .

如果我尝试加载图像的直接URL,例如 - 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 回答

  • 2

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

    Step 1: 在配置Apache之前,您应该启用必要的模块 .

    a2enmod proxy
    a2enmod proxy_http
    

    Step 2: 接下来,您将修改 /etc/apache2/sites-enabled 中的默认配置文件 000-default.conf 以设置"proxying"功能 .

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

    Step 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>
    

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

    就是这样!

    阅读更多:https://medium.com/@ldclakmal/deploy-a-java-web-application-in-digitalocean-882226dcdbd5

相关问题