Tomcat 6 host virtual + proxy do Apache 2

1

Eu tenho um problema com a configuração do Apache e do Tomcat. Eu tenho uma instância do Apache como um proxy para o Tomcat. O Tomcat serve dois hosts virtuais. O problema ocorre quando um Apache virtual aponta para um virtual particular no Tomcat. Posso mostrar em meus arquivos de configuração:

/ etc / hosts:

127.0.0.1       localhost
127.0.0.1       my-pages

/etc/apache/sites-enabled/my-pages.tld:

<VirtualHost *:80>
        RewriteEngine on
        ServerAdmin [email protected]
        ServerName www.my-pages.tld
        ServerAlias my-pages.tld
        ProxyPass / http://my-pages:9082/
        ProxyPassReverse / http://my-pages:9082/
        # Logs
        ErrorLog /usr/local/tomcat2/logs/error.log
        CustomLog /usr/local/tomcat2/logs/access.log common
        LogLevel debug
</VirtualHost>

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

ProxyRequests       Off
ProxyPreserveHost   Off

$ {CATALINA_HOME} /conf/server.xml

...
<Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8444"
               URIEncoding="UTF-8" />
<Connector port="9082" proxyPort="80" proxyName="my-pages" />
...

<Host name="my-pages" appBase="my-pages"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      <Context path="" docBase="envelon-web" />
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
             prefix="my-pages_access_" suffix=".log" pattern="common" resolveHosts="false"/>
</Host>

Quando executo essa configuração, as páginas www.my-pages.tld apontam para o host virtual padrão no Tomcat (não para o virtual "my-pages"). É muito estranho, porque quando eu definir a mesma configuração na minha máquina local (não no servidor), funciona bem. Além disso, quando eu uso o nome de domínio no Tomcat virtual (my-pages.tld em vez de my-pages) também funciona (eu não quero usar essa configuração porque eu quero "esconder" o Tomcat de fora).

Você sabe onde estou errado ou o que consertará esse problema? Obrigado por qualquer resposta!

Mateo

    
por user68786 04.04.2011 / 14:13

2 respostas

1

Eu finalmente resolvi esse problema. O problema é que o ProxyPreserveHost foi definido fora da diretiva . Foram definidos mais hosts virtuais no Apache e alguns deles tiveram * ProxyPreserveHost On "o que influenciou outros hosts.

Mudei ProxyPreserveHost para o que resolveu o

    
por 05.04.2011 / 09:15
0

De um modo geral, existem duas soluções:

  1. ProxyPreserveHost com mod_proxy_http
  2. mod_proxy_ajp

Ou funciona bem para hosts virtuais e para escolher é uma questão de preferência ou outros requisitos além do que foi solicitado aqui.

    
por 05.04.2011 / 09:49