希望有人可以提供帮助/建议,因为我对Apache/Tomcat不是很熟悉..我已经在部署了grails应用的Tomcat前面安装了Apache。我有IIs设置(通过其他人),它将www.xyz.com/myApp重定向到运行grails应用程序的Apache实例。在我的Apache的conf我有一个代理..Tomcat/Apache/Grails配置
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我得到渲染(正确的,我认为)作为https://www.xyz.com/anotherApp但404错误的URL说“对象没有找到“..
任何人都可以帮助我的配置?是否有可能在不同端口 上有两个连接器具有相同的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,我似乎已经停下来,我认为应该是相对容易 - 部署!
嗨Stefan,应用程序确实生活在同一台服务器和域上,所以我删除了一个连接器定义。我现在只剩下 – user566311 2011-06-14 09:56:45