在debian wheezy下使用tomcat7和webapp为apache2配置proxy_http

在debian wheezy下使用tomcat7和webapp为apache2配置proxy_http,apache,web-applications,debian,tomcat7,mod-proxy,Apache,Web Applications,Debian,Tomcat7,Mod Proxy,我有一个带有debian 7.8(wheezy)、apache2 Web服务器和tomcat7的vServer 我在/var/lib/tomcat7/webapps/app/中部署了一个带有apachewww.mydomain.com/manager应用程序的webapp,该应用程序在www.mydomain.com:8080下运行良好。它被链接到我的webapp的欢迎页面www.mydomain.com:8080/app/#welcome My apache2www.mydomain.com/

我有一个带有debian 7.8(wheezy)、apache2 Web服务器和tomcat7的vServer

我在
/var/lib/tomcat7/webapps/app/
中部署了一个带有apache
www.mydomain.com/manager
应用程序的webapp,该应用程序在
www.mydomain.com:8080
下运行良好。它被链接到我的webapp的欢迎页面
www.mydomain.com:8080/app/#welcome

My apache2
www.mydomain.com/host manager
仅在主机名下列出“localhost”

现在我想将我的apache2 Web服务器连接到tomcat7,以便
www.mydomain.com
启动我的Web应用程序(如
www.mydomain.com/#welcome

到目前为止,我已经做了很多事情:

  • 启用的代理\u http,可在
    /etc/apache2/mods enabled/proxy\u http.load
  • 我的
    /etc/apache2/sites enabled/000默认文件如下所示

    <VirtualHost *:80> ServerName www.mydomain.com ServerAlias mydomain.com ProxyRequest Off ProxyPreserveHost On <Proxy*> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8080/ ProxyPassReserve / http://localhost:8080/ DocumentRoot /var/lib/tomcat7/webapps/app/ </VirtualHost> <Server port=”8005” shutdown=”SHUTDOWN”> ... <Connector port=”8080” protocol=”HTTP/1.1” ... redirectPort=”8443” proxyPort=”80” proxyName=”www.mydomain.com” />

  • 我缺少什么?

    从您的配置中,我注意到:

    • DocumentRoot
      与代理配置结合使用没有意义
    • 如果您计划重定向到
      localhost:8080/app/
      ,则必须对此进行配置(见下文)
    我没有tomcat7,但我配置了nginx:apache(80)-->proxy-->nginx(8080)

    通过以下配置,nginx的子目录
    app
    通过apache显示在端口80处。我希望这将有助于回答您的问题(仅适用于Debian 8):

    /etc/apache2/sites available/000-default.conf

    <VirtualHost *:80>
        ProxyVia On
        ProxyRequests Off
        ProxyPreserveHost on
    
        ProxyPass / http://127.0.0.1:8080/app/ retry=0
        ProxyPassReverse / http://127.0.0.1:8080/app/
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
    所有可能的错误消息都记录到
    /var/log/apache2/error.log中,您还应该查看tomcat日志文件


    如果将配置放在
    000 default.conf
    以外的其他文件中,则必须使用
    a2ensite
    启用站点,以便apache知道它存在。

    您的错误消息是什么?
    ProxyPassReserve/
    http://loclhost
    …缺少的空格是一个打字错误,编辑了它。我没有收到任何错误…当我浏览
    www.mydomain.com
    我得到标准的apache2站点,
    www.mydomain.com:8080
    给我标准的tomcat站点,
    www.mydomain.com:8080/app
    给我的webapp起始页你说,你看到默认的apache2站点,猜猜看:修改后是否重新启动了apache2?如果没有错误信息,很难找到错误…对于标准站点,我指的是所有那些“它工作”的站点。我重新启动了apache2和tomcat……我没有发现任何错误日志,因为每个服务都正常工作,但我的代理配置肯定是错误的。我对debian和vserver配置很陌生,所以你能告诉我是否有错误的代理配置的错误日志吗?空格是打字错误…我必须先找出如何将xml代码传递给so/html。你的方法也不能解决它,但是错误日志配置+1。很难弄清楚,一定是url映射错误。
    a2enmod proxy
    a2enmod proxy_http
    service apache2 restart