Apache / Tomcat / Railo: настройка двух сайтов с одним доменом, но двумя разными портами - PullRequest
2 голосов
/ 12 февраля 2012

Я успешно настроил Railo с Tomcat и Apache для веб-сайта на порту 80. Однако я пытаюсь настроить другой, который использует тот же домен, но порт, отличный от 80.

У меня есть второйнастройка сайта на порт 9080 и с сертификатом SSL и базовой аутентификацией.Я могу получить к нему доступ и получить сертификат SSL и запрос на аутентификацию, но как только я это сделаю, Railo выводит страницу по умолчанию (расположена по адресу /opt/railo/tomcat/webapps/ROOT/index.cfm).

Как будто Tomcat не получает от Apache имя сервера для второго сайта, поэтому Railo знает, какую базу данных использовать.Это потому, что я пытаюсь использовать тот же домен?Нужно ли указывать порт 9080 где-нибудь в конфигурации Tomcat?

Я вставил свою конфигурацию ниже.Любая помощь приветствуется.

Apache:

<VirtualHost *:80>
  ServerName sitename
  ServerAlias domainname
  DirectoryIndex index.cfm index.html index.htm

  DocumentRoot "/web/sitename"
  <Directory "/web/sitename">
    allow from all
    Options +Indexes
  </Directory>
</VirtualHost>

Listen 9080
<VirtualHost *:9080>
  ServerName sitename2
  ServerAlias domainname
  DirectoryIndex index.cfm index.html index.htm
  SSLEngine on
  SSLCertificateFile    /web/ssl/server.crt
  SSLCertificateKeyFile /web/ssl/server.key

  DocumentRoot "/web/sitename2
  <Directory "/web/sitename2">
    allow from all
    Options -Indexes
    AuthName .. basic auth settings ..
  </Directory>
</VirtualHost>

Tomcat (server.xml):

<Host name="sitename" appBase="webapps">
    <Context path="" docBase="/web/sitename" />
</Host>

<Host name="sitename2" appBase="webapps">
    <Context path="" docBase="/web/sitename2" />
</Host>

1 Ответ

1 голос
/ 17 февраля 2012

Проблема здесь в конфигурации Tomcat.У вас не может быть двух хостов с одинаковым "sitename".Один заменит другой.В идеале вы могли бы заставить Tomcat прослушивать несколько портов, как вы это делаете с Apache, но Coyote (веб-сервер Tomcat) не настолько продвинут, как Apache, с точки зрения такого рода функциональности.Большинство рекомендаций, которые я видел в отношении запуска Tomcat на нескольких портах, предполагают запуск отдельных экземпляров Tomcat на одной и той же машине, так что это то, что я бы порекомендовал вам, так как это, как кажется, является общепринятым.1002 * Если вы установили второй экземпляр Tomcat и установили на нем Railo, вы можете настроить Apache для передачи запросов, поступающих на ваш второй виртуальный хост, на второй экземпляр Tomcat.Например, второй экземпляр Tomcat можно прослушивать с помощью прослушивателя AJP через порт 9009 вместо 8009, а затем настроить виртуальный хост Apache для запросов прокси-сервера на порт 9009, тем самым ударив второй экземпляр Tomcat.

Затем, во втором случае, вы можете создать те же записи хоста, но с другим атрибутом docbase.

Например:

<VirtualHost *:80>
  ServerName sitename
  ServerAlias domainname
  DirectoryIndex index.cfm index.html index.htm

  DocumentRoot "/web/sitename"
  <Directory "/web/sitename">
    allow from all
    Options +Indexes
  </Directory>
  <Proxy *>
  Allow from 127.0.0.1
  </Proxy>
  ProxyPreserveHost On
  ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ ajp://localhost:8009/$1$2
</VirtualHost>

Listen 9080
<VirtualHost *:9080>
  ServerName sitename2
  ServerAlias domainname
  DirectoryIndex index.cfm index.html index.htm
  SSLEngine on
  SSLCertificateFile    /web/ssl/server.crt
  SSLCertificateKeyFile /web/ssl/server.key

  DocumentRoot "/web/sitename2
  <Directory "/web/sitename2">
    allow from all
    Options -Indexes
    AuthName .. basic auth settings ..
  </Directory>
  <Proxy *>
  Allow from 127.0.0.1
  </Proxy>
  ProxyPreserveHost On
  ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ ajp://localhost:9009/$1$2
</VirtualHost>

Это не простоответь за то, что ты делаешь, но это достигнет твоей цели.

-Иордания

...