ELB目标组的健康检查失败,状态代码403在将rails升级到rails 6后被禁止。然而,健康检查在开发中起作用,但在AWS云上不起作用。
健康检查在rails 5中是成功的,但是rails 6没有成功。
任何帮助都将不胜感激。
发布于 2021-01-14 14:48:09
这是因为Rails 6中的一个新特性:主机授权。它检查传入的请求是否有正确的主机名,如果没有,则返回403。
当AWS访问健康检查端点时,它不会设置Host头,这会导致它失败。
通过将web服务器内部IP (ELB与内部IP一起访问)添加到允许的主机上,可以通过禁用特性(config.hosts.clear)来解决此问题,如下所示:
config.hosts = ["example.org", IPAddr.new("10.0.99.0/24")]https://stackoverflow.com/questions/63988780
复制相似问题