Назад | Перейти на главную страницу

Apache + Tomcat: подключение, но не через mod_jk

Мне поручено установить новую систему, чтобы заменить старую. Старая система представляет собой установку Ubuntu, на которой работают Apache и Tomcat, а также несколько других служб. Новая система будет Debian Squeeze, постоянно обновляемая за счет обновлений программ и безопасности.

Я ни в коем случае не являюсь экспертом в тонкостях Apache и Tomcat, но мне казалось, что я понял, что для совместной работы этих двоих вам потребуется отдельное приложение / модуль под названием mod_jk. Большинство инструкций в сети, кажется, со мной согласны.

Однако, проверяя старую установку, я не могу найти никаких указаний относительно того, где в игру вступает mod_jk. Я ожидал чего-то вроде

JkMount /* ajp13_worker

в любом файле конфигурации для Apache, предпочтительно в любом из файлов / etc / apache2 / sites-available / *.

Я прикрепил /etc/apache2/sites-available/ourapp.oursite.tld.conf:

NameVirtualHost ourapp.oursite.tld:443
<VirtualHost ourapp.oursite.tld:443>
        ServerName ourapp.oursite.tld
        ServerAdmin admin@oursite.tld

        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>

Я вижу, что в нем указано, что файл по умолчанию - index.jsp, но я не могу понять, как эта система знает, что Tomcat должен использоваться.

Буду признателен, если вы мне подскажете. Могу выложить любой конфигурационный файл по запросу.

Спасибо.

Судя по всему, я мог бы предположить, что это разделы mod_proxy посередине:

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

Если вы выполните поиск в файле конфигурации сервера Tomcat (я думаю, server.xml) по запросу «8180», вы, вероятно, найдете там запись «HTTP-коннектор». В этом случае Apache фактически обращается к встроенному в Tomcat веб-серверу HTTP.