我创建了具有自动缩放组的负载均衡器。直到我应用SSL证书并将流量重定向到HTTPS之前,它的运行情况都很好。负载均衡器运行状况检查为http一,我无法将该检查移至https,因为证书已应用于负载均衡器。所以当前的堆栈是Rails 4.2,操作系统是ubuntu,http entertainer是nginx,并且我有5个实例在Load Balancer上运行。所以我在nginx上创建了一个重定向,如下所示

if ($scheme = http) {
   return 301 mydomain.com$request_uri;
}


然后我尝试了这个

if ($request_uri != "/public/health.html" ) {
  set $balancer  P;
}
if ($scheme = http) {
  set $balancer  "${balancer}C";
}
if ($balancer = PC) {
  return 303 mydomain.com$request_uri;
}


进行这些重定向后,我的网站瘫痪了,在浏览器上我遇到了多个重定向错误。这个问题使我发疯。请帮助。您的帮助将不胜感激。谢谢

最佳答案

非常简短有效的解决方案,在任何AWS设置上都可以100%工作。将其放在您的应用程序控制器中。

before_filter :move_to_https if RAILS.env == "production"
def move_to_https
    redirect_to request.url.gsub("http","https") unless request.url.include?("https")
end


这会将所有域流量转换为https,并且IP永远不会通过负载平衡器公开。

关于ruby-on-rails - 应用AWS SSL证书后的负载均衡器运行状况检查,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38604743/

10-11 08:43