Конфигурация Tomcat / Apache / Grails - PullRequest
0 голосов
/ 13 июня 2011

Надеюсь, что кто-то может помочь / посоветовать, так как я не очень знаком с Apache / Tomcat. У меня уже есть Apache перед Tomcat с развернутым приложением grails. У меня есть настройки II (кем-то еще), который перенаправляет www.xyz.com/myApp в экземпляр Apache, который запускает приложение Grails. В моем apache conf у меня есть прокси ..

ProxyPass /myApp http://localhost:8080/myApp
ProxyPassReverse /myApp http://localhost:8080/myApp 

, и в моем tomcat server.xml

определен соединитель
<Connector port="8080" maxHttpHeaderSize="8192"
       maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
       enableLookups="false" disableUploadTimeout="true"
       acceptCount="100" scheme="https" secure="true"
       clientAuth="false" sslProtocol="TLS"
       proxyName="www.xyz.com"
       proxyPort="443" />

Это работает без проблем

Теперь я хочу добавить другое приложение, поэтому в IIS для меня была настроена www.xyz.com/myOtherApp

с

ProxyPass /myOtherApp http://localhost:8081/anotherApp
ProxyPassReverse /myOtherApp http://localhost:8081/anotherApp

В моем Apache Conf я добавил еще один разъем

<Connector port="8081" maxHttpHeaderSize="8192"
       maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
       enableLookups="false" disableUploadTimeout="true"
       acceptCount="100" scheme="https" secure="true"
       clientAuth="false" sslProtocol="TLS"
       proxyName="www.xyz.com"
       proxyPort="443" />

Когда я захожу на www.xyz.com/myOtherApp, я получаю URL, отображаемый (правильно я думаю), как https://www.xyz.com/anotherApp, но с ошибкой 404, говорящей «Объект не найден» ..

Может кто-нибудь помочь мне с конфигом? Можно ли иметь 2 разъема на разных портах с таким же proxyName? Как я уже сказал, я не знаком с Apache / Tomcat, и мне бы очень хотелось сделать это как можно скорее ..

Спасибо

Привет, @Stefan, приложения работают на одном сервере и домене, поэтому я исключил одно из определений коннектора. Теперь я остался с

<Server port="8005" shutdown="SHUTDOWN">

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
          type="org.apache.catalina.UserDatabase"
          description="User database that can be updated and saved"
          factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>

<Service name="Catalina">

<Connector port="8080" maxHttpHeaderSize="8192"
       maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
       enableLookups="false" disableUploadTimeout="true"
       acceptCount="100" scheme="https" secure="true"
       clientAuth="false" sslProtocol="TLS"
       proxyName="www.xyz.com"
       proxyPort="443" />

  <Engine name="Catalina" defaultHost="localhost">

  <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
         resourceName="UserDatabase"/>

  <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">

  </Host>

</Engine>

</Service>

</Server>

Также я включил ведение журнала (JULI), но, похоже, ничего не сообщалось. Журнал ошибок Apache просто дает мне 404 .. Я оставил его как HTTP, а не как AJP, так как мне пришлось бы настроить HTTPS, и я не уверен, насколько это просто. Так что у меня осталась та же проблема: одно приложение работает, другое - нет. Возможно ли запускать несколько приложений Grails через http, в отличие от использования ajp и виртуальных хостов? Извините, если я глупый - у меня не было большого интереса к веб-приложениям, и я, кажется, остановился на том, что, как я думал, должно было быть относительно простым - развертывание!

Ответы [ 2 ]

1 голос
/ 13 июня 2011

Если вы хотите использовать Apache перед Tomcat, лучше использовать mod_proxy_ajp вместо mod_proxy_http.Чтобы настроить это, см. https://confluence.sakaiproject.org/display/~steve.swinsburg/Fronting+Tomcat+with+Apache+via+mod_proxy_ajp.

Больно добавлять

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

в вашу конфигурацию, чтобы предотвратить злоупотребление прокси.находиться в том же движке tomcat , для обоих приложений вам нужен только один разъем.Помимо этого, я не вижу очевидной ошибки в вашей настройке.Может быть, вы могли бы опубликовать свой tomcat server.xml.Во время работы над конфигурацией, использование LogLevel Debug может быть хорошей идеей.

0 голосов
/ 14 июня 2011

Это не прямой ответ на ваш вопрос, но я настраивал Tomcat за Apache и у меня были проблемы с ним.

Я сейчас использую Amazons Elastic beanstalk ...где вы можете развернуть файл войны приложения Grails напрямую.Он прекрасно работает, особенно со встроенным автоматическим масштабированием и мониторингом состояния!

Меньше настроек == Простота жизни.

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