Tomcat / Apache / Grails Config

| 希望有人可以提供帮助/建议,因为我对Apache / Tomcat不太熟悉。.我已经在Tomcat前面部署了grails应用程序,并在Tomcat前面安装了Apache。我有IIs设置(由其他人执行),该设置将www.xyz.com/myApp重定向到运行grails应用程序的Apache实例。在我的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,但我不确定这样做有多容易。因此,我在一个应用程序正常工作时遇到了同样的问题,而另一个则没有..是否可以通过HTTP运行多个grails应用程序,而不是使用ajp和虚拟主机?如果我很愚蠢,请原谅我-我没有接触过Webapps太多了,而且我似乎已经停顿了下来,因为我认为应该相对容易一些-部署!     
已邀请:
        如果要在Tomcat之前使用Apache,最好使用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>
到您的配置,以防止滥用代理。 如果/ myApp和/ myOtherApp驻留在同一tomcat引擎中,则两个应用程序仅需要一个连接器。除此之外,在您的设置中我看不到任何明显的错误。也许您可以发布您的tomcat \的server.xml。在配置过程中,使用
LogLevel Debug
可能是一个好主意。     
        这不是您问题的直接答案,但是我之前在Apache后面配置了Tomcat,但遇到了问题。 我现在使用Amazons Elastic beanstalk ...您可以在其中直接部署grails应用程序war文件。它的运行非常漂亮,尤其是内置的自动缩放和运行状况监控! 更少的配置==易于使用。     

要回复问题请先登录注册