AWS ELB:加载资源失败:服务器响应的状态为503(服务不可用:后端服务器处于启用状态)

问题描述:

我的cloudformation堆栈已成功部署。我正试图在EC2上部署一个clojure戒指应用程序。AWS ELB:加载资源失败:服务器响应的状态为503(服务不可用:后端服务器处于启用状态)

当我在my-app.us-west-1.elb.amazonaws.com访问我的弹性负载均衡终点,我得到Failed to load resource: the server responded with a status of 503 (Service Unavailable: Back-end server is at capacity)

我证实tomcat的被ssh方式连接到EC2和运行ps -afx

所以什么可能是这里的问题上运行?

更新:好了,所以做一个卷曲的请求到localhost:8080返回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

检查ELB上健康实例的数量。正确配置HealthCheck。 – Shibashis

+0

@Shibashis tomcat7服务器的适当设置是什么?我在这里看到他们,但不知道,如果他们是正确的:'平安目标\t HTTP:8080 /健康检查 超时\t5秒 间隔\t12秒 不健康的门槛健康门槛\t 3' – user299709

+0

你能蜷在localhost并检查,如果进程正在侦听8080? – Shibashis

基于从意见的讨论。通过更新ELB上的健康检查解决了该问题。