Apache + Tomcat: Conexão, mas não via mod_jk

1

Tenho a tarefa de instalar um novo sistema para assumir o trabalho de um sistema antigo. O sistema antigo é uma instalação do Ubuntu que executa o Apache e o Tomcat, além de alguns outros serviços. O novo sistema será um Debian Squeeze, mantido atualizado com atualizações de programas e segurança.

Eu não sou, de maneira alguma, um especialista nos pontos mais apurados do Apache e do Tomcat, mas achei que entendi que para que esses dois funcionassem juntos, você precisava de um aplicativo / módulo separado chamado mod_jk. A maioria das instruções na internet parece concordar comigo.

No entanto, verificando a instalação antiga, parece que não consigo encontrar qualquer indicação de onde o mod_jk entra em jogo. Eu esperava algo como

JkMount /* ajp13_worker

em qualquer arquivo de configuração do Apache, preferível em qualquer um dos arquivos / etc / apache2 / sites-available / *.

Anexei o /etc/apache2/sites-available/ourapp.oursite.tld.conf:

NameVirtualHost ourapp.oursite.tld:443
<VirtualHost ourapp.oursite.tld:443>
        ServerName ourapp.oursite.tld
        ServerAdmin [email protected]

        ErrorLog /var/log/apache2/ourapp.oursite.tld_ssl_error_log
        TransferLog /var/log/apache2/ourapp.oursite.tld_ssl_access_log

        SSLEngine on
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SSLCertificateFile /etc/apache2/ssl/servernew-public.key
        SSLCertificateKeyFile /etc/apache2/ssl/servernew-private.key

        <FilesMatch "\.(cgi|shtml|phtml|php3?)$">
            SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory "/tmp">
            SSLOptions +StdEnvVars
        </Directory>

        SetEnvIf User-Agent ".*MSIE.*" \
           nokeepalive ssl-unclean-shutdown \
          downgrade-1.0 force-response-1.0

        CustomLog /var/log/apache2/ourapp.oursite.tld_ssl_request_log \
            "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

  DirectoryIndex index.jsp

  Redirect /webapps https://ourapp.oursite.tld/ourapp/
  Redirect /abs https://ourapp.oursite.tld:81
  Redirect / https://ourapp.oursite.tld/ourapp/

        ProxyRequests Off
        #ProxyVia On
        #ProxyPreserveHost On
        ProxyPass /ourapp http://127.0.0.1:8180/ourapp
        ProxyPassReverse /ourapp http://127.0.0.1:8180/ourapp
   ProxyPass /pbsEasyRequester http://127.0.0.1:8180/pbsEasyRequester
        ProxyPassReverse /pbsEasyRequester http://127.0.0.1:8180/pbsEasyRequester
   ProxyPass /ordertracking http://127.0.0.1:8180/ordertracking
        ProxyPassReverse /ordertracking http://127.0.0.1:8180/ordertracking

         <IfModule mod_deflate.c>
     #SetOutputFilter DEFLATE
   </IfModule>
</VirtualHost>

NameVirtualHost ourapp.oursite.tld:80
<VirtualHost ourapp.oursite.tld:80>
        ServerName ourapp.oursite.tld
        ErrorLog /var/log/apache2/ourapp.oursite.tld_error_log
        TransferLog /var/log/apache2/ourapp.oursite.tld_access_log

  Redirect /webapps https://ourapp.oursite.tld/ourapp/
  Redirect /abs https://ourapp.oursite.tld:81
  Redirect / https://ourapp.oursite.tld/ourapp/

        ProxyRequests Off
        #ProxyVia On
        #ProxyPreserveHost On
  ProxyPass /ourapp http://127.0.0.1:8180/ourapp
        ProxyPassReverse /ourapp http://127.0.0.1:8180/ourapp
        ProxyPass /pbsEasyRequester http://127.0.0.1:8180/pbsEasyRequester
        ProxyPassReverse /pbsEasyRequester http://127.0.0.1:8180/pbsEasyRequest
        ProxyPass /ordertracking http://127.0.0.1:8180/ordertracking
        ProxyPassReverse /ordertracking http://127.0.0.1:8180/ordertracking
</VirtualHost>

NameVirtualHost ourapp.oursite.tld:81
<VirtualHost ourapp.oursite.tld:81>
  ServerName ourapp.oursite.tld
  ErrorLog /var/log/apache2/ourapp.oursite.tld_joomla_error_log
  TransferLog /var/log/apache2/ourapp.oursite.tld_joomla_access_log

  DocumentRoot /var/www/joomla

        SSLEngine on
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SSLCertificateFile /etc/apache2/ssl/servernew-public.key
        SSLCertificateKeyFile /etc/apache2/ssl/servernew-private.key
        #SSLCACertificateFile /etc/apache2/ssl/ourapp.oursite.tld.crt
        <FilesMatch "\.(cgi|shtml|phtml|php3?)$">
            SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory "/tmp">
            SSLOptions +StdEnvVars
        </Directory>
</VirtualHost>

Vejo que o arquivo padrão é index.jsp, mas não consigo entender como esse sistema sabe que o Tomcat deve ser usado.

Eu apreciaria se você me desse uma dica. Eu posso postar qualquer arquivo de configuração a pedido.

Obrigado.

    
por Dabu 18.01.2012 / 15:40

1 resposta

3

Pelo que parece, imagino que sejam as seções do mod_proxy no meio:

ProxyPass /ourapp http://127.0.0.1:8180/ourapp
ProxyPassReverse /ourapp http://127.0.0.1:8180/ourapp
ProxyPass /pbsEasyRequester http://127.0.0.1:8180/pbsEasyRequester
ProxyPassReverse /pbsEasyRequester http://127.0.0.1:8180/pbsEasyRequest
ProxyPass /ordertracking http://127.0.0.1:8180/ordertracking
ProxyPassReverse /ordertracking http://127.0.0.1:8180/ordertracking

Se você pesquisar o arquivo de configuração do servidor Tomcat (server.xml, eu acho) como "8180", provavelmente encontrará uma entrada "conector HTTP". Nesse caso, o Apache está realmente conversando com o servidor da Web HTTP do Tomcat.

    
por 18.01.2012 / 15:52