Надеюсь, что кто-то может помочь / посоветовать, так как я не очень знаком с 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 и виртуальных хостов? Извините, если я глупый - у меня не было большого интереса к веб-приложениям, и я, кажется, остановился на том, что, как я думал, должно было быть относительно простым - развертывание!