我在为我的服务器configurationELB时遇到问题。
我使用完全相同的conf来启动2个微型实例,并尝试进行负载平衡。 但是他们从来没有通过健康检查(HTTP端口80path:“/”)。
健康检查是如何工作的? 我做错了什么?
编辑:
我也有同样的问题。 我只是把它检查TCP:80作为一个临时解决scheme(工作正常)。
我得出的结论是,除了作为HTTP 200响应之外,响应必须包含某些标题。 我有一个从我的tomcat服务器返回的HTTP 200运行的实例不工作,但由httpd(也返回200代码)服务的静态HTML页面正常工作。 看看这些头文件,less数的差异之一是tomcat中没有包含内容types。 不知道为什么会有所作为,但。
我假定它对每个服务器的指定path“/”执行HTTP GET请求,并查找成功的HTTP响应代码(200)。 您可以通过浏览器(或CLI工具,如wget
或curl
)成功地向http://<backend_server_IP>:80/
发出GET请求。
如果请求服务成功,第二件要问的是:你是否configuration了服务器的安全组,以便对端口80的访问仅限于特定的源地址或子网? 如果是这样,您需要将ELB的安全组添加到filter。 该组总是被称为:
amazon-elb/amazon-elb-sg
因此,您可以将其添加到AWS控制台“安全组”部分的“源”字段下。
您必须在您的networking服务器上使用特定的域名。 或者您设置您的Web服务器以满足任何请求(绑定*)或按照文档 。
所以我刚刚通过指向一个静态的HTML文件(而不是一个PHP页面)的http检查工作。
'/'不起作用,尽pipe它在使用curl时返回一个有效的http状态等。然而'/file.html'确实通过了健康检查。