Tomcat Java Web应用程序在通过虚拟主机路由时未连接到MySQL

时间:2017-01-05 22:27:15

标签: mysql apache tomcat amazon-ec2 virtualhost

在Tomcat上运行的我的Java / JSP / Spring Web应用程序在使用表单中的url时在我的EC2实例上正常运行:www.mydomain.com:8080 / my-webapp /然而,当我尝试设置虚拟时通过在etc / apache2 / sites-enabled中编辑000-default.conf来在apache2上托管它 - 该应用程序仍在运行,这次是www.mydomain.com,但只能到达必须访问MySQL数据库的页面登录用户数据库查询返回页面:

HTTP状态404 - 类型状态报告 信息 description请求的资源不可用。 Apache Tomcat / 7.0.70

我的000-default.conf文件显示为:

<VirtualHost *:80>
    ServerName www.mydomain.com
    ProxyPreserveHost On
    ProxyRequests Off

    ServerAdmin ubuntu@localhost

    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass / http://localhost:8080/my-webapp/
    ProxyPassReverse / http://localhost:8080/my-webapp/

    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

#vim: syntax=apache ts=4 sw=4 sts=4 sr noet

我承认我不理解000-default.conf,感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

不建议将/映射到/my-webapp,因为它需要您完成大量工作才能重写可能位于页面中的每个URL。做其中任何一个都会更好:

ProxyPass /my-webapp/ http://localhost:8080/my-webapp/
ProxyPassReverse /my-webapp/ http://localhost:8080/my-webapp/

或将您的网络应用程序从my-webapp重命名为ROOT(大写很重要)然后执行此操作:

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

在任何一种情况下,你都会有更好的运气。