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)
答
基于从意见的讨论。通过更新ELB上的健康检查解决了该问题。
检查ELB上健康实例的数量。正确配置HealthCheck。 – Shibashis
@Shibashis tomcat7服务器的适当设置是什么?我在这里看到他们,但不知道,如果他们是正确的:'平安目标\t HTTP:8080 /健康检查 超时\t5秒 间隔\t12秒 不健康的门槛健康门槛\t 3' – user299709
你能蜷在localhost并检查,如果进程正在侦听8080? – Shibashis