2011-06-13 5 views
0

나는 아파치/톰캣에 익숙하지 않아서 도움을받을 수 있다고 조언했다. 이미 Tomcat 앞에 아파치가있다. grails 앱을 실행하는 Apache 인스턴스로 www.xyz.com/myApp를 리다이렉트하는 IIs 설정을 (다른 사람이) 가지고 있습니다. 내 아파치의 conf에서 나는Tomcat/Apache/Grails Config

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

프록시를 ..하고 난 지금 다른를 추가 할

이 문제

없이 작동

<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" /> 

server.xml을 내 바람둥이에 정의 된 커넥터가 IIS에 있도록 응용 프로그램 나는

,156,165,539와 www.xyz.com/myOtherApp

나를 위해 설치했다 내 아파치의 conf에서 93,210

나는 다른 커넥터

<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이 말하는 "개체를 얻을 수 찾을 수 없습니다. "..

아무도 나를 도와 줄 수 있습니까? 서로 다른 포트에 2 개의 커넥터를 사용할 수 있습니까? proxyName이 동일한 ? 내가 말한대로 나는 아파치/톰캣에 익숙하지 그리고 난 정말이가 .. 최대한 빨리

감사

일을 좀하고 싶습니다

안녕 @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> 

왼쪽 있어요. 아파치 오류 로그는 단지 나에게 404를 준다. 나는 HTTPS를 설정해야하고 나는 그것이 얼마나 쉬운 지 확신하지 못하기 때문에 AJP보다는 HTTP로 남겼다. 그래서 한 응용 프로그램에서 작동하는 동일한 문제가 남았어요, 다른 않습니다 .. ajp 및 가상 호스트를 사용하는 대신 HTTP를 통해 여러 grails 애플 리케이션을 실행할 수 있습니까? 내가 어리 석다는 것을 용서해주십시오 - 저는 웹 애플리케이션에 대한 노출이 많지 않습니다. 그리고 상대적으로 쉬운 것이어야한다고 생각한 곳에서 연삭 중단을 한 것 같습니다 - 배치!

답변

1

Tomcat 앞에서 Apache를 사용하려면 mod_proxy_http 대신 mod_proxy_ajp를 사용하는 것이 좋습니다. 이를 설정하려면 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 engine에 있으면 두 응용 프로그램에 대해 하나의 커넥터 만 있으면됩니다. 이 외에도 설정에 명백한 오류가 없음을 알 수 있습니다. 어쩌면 당신은 tomcat의 server.xml을 게시 할 수 있습니다. 구성 작업 중에 LogLevel Debug을 사용하는 것이 좋습니다.

+0

스테판, 응용 프로그램은 동일한 서버 및 도메인에 있으므로 커넥터 정의 중 하나가 제거되었습니다. 나는 지금 왼쪽으로 – user566311

-1

이 질문에 대한 직접적인 대답은 아니지만 이전에 Apache에서 Tomcat을 구성하고 있었고 문제가있었습니다.

지금은 Amazons Elastic beanstalk ...grails app war 파일을 직접 배포 할 수 있습니다. 이 기능은 아름답게 작동합니다. 특히 자동 스케일링 및 건강 모니터링 기능이 내장되어 있습니다.

덜 구성 == 편안함.

+0

고마워, 어쩌면 다음 번에! – user566311