1

mein Cloudformation-Stack erfolgreich eingesetzt wird. Ich versuche eine Clojure Ring App auf EC2 zu installieren.AWS ELB: Fehler Ressource laden: der Server mit einem Status von 503 geantwortet (Dienst nicht verfügbar: Back-End-Server an der Kapazitätsgrenze ist)

Wenn ich meinen elastischen Lastausgleich Endpunkt bei my-app.us-west-1.elb.amazonaws.com greife ich bekomme Failed to load resource: the server responded with a status of 503 (Service Unavailable: Back-end server is at capacity)

ich den Kater bestätigt wurde ausgeführt durch sshing in die EC2 und laufen ps -afx

Also, was möglicherweise das Problem hier sein könnte?

Update: okay so eine Locke Anfrage tun zu localhost: 8080 kehrt HTTP 500

SEVERE: Servlet.service() for servlet [clj-west.system/servlet-handler servlet] in context with path [] threw exception 
java.lang.NullPointerException: Handler returned nil 
     at ring.util.servlet$make_service_method$fn__52.invoke(servlet.clj:127) 
     at clj_west.servlet$_service.invoke(servlet.clj:1) 
     at clj_west.servlet.service(Unknown Source) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436) 
     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) 
     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) 
     at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
     at java.lang.Thread.run(Thread.java:745) 
+0

überprüfen Sie die Anzahl der gesunden Instanzen auf dem ELB. Konfigurieren Sie ein HealthCheck korrekt. – Shibashis

+0

@Shibashis Was ist die geeignete Einstellung für tomcat7 Server? Ich sehe sie hier aber keine Ahnung, ob sie Recht haben: 'Ping Ziel \t HTTP: 8080/Gesundheit-Check Timeout \t 5 Sekunden Intervall \t 12 Sekunden Ungesund Schwelle Gesunde Schwelle \t 3' – user299709

+0

Können Sie rollen auf localhost und prüfen, ob der Prozess auf 8080 hört? – Shibashis

Antwort

2

Basierend auf der Diskussion von Kommentaren. Das Problem wurde behoben, indem der Healthcheck auf dem ELB aktualisiert wurde.