目标组443使用以下代码给运行状况检查失败:[502]

时间:2020-03-18 11:28:29

标签: laravel amazon-web-services aws-application-load-balancer

我想将Laravel网站部署到亚马逊,所以我做了以下步骤:

  • 使用Elastic Beanstalk部署Laravel应用
  • 已配置的路由:53一个实例,指向Ec2的Ip
  • 创建了具有两个监听器的应用程序负载平衡器,其中一个监听器位于80,另一个监听器位于443
  • 创建了两个目标组Tg80和Tg443,并分别指定了侦听器
  • 请注意,Tg443具有有效的SSL证书

  • 将Ec2的安全组更改为负载均衡器的安全组

  • 将Route:53中的A实例更改为负载均衡器的

**结果:**

  • 该网站可以在http的80端口上正常运行,并且可以进行健康检查,并且我可以从任何浏览器正常访问该网站

  • 该网站在https:443

  • 上返回[502 Bad Gateway]
  • 在(ssh到实例之后)/ var / log / httpd / error_log中,我遇到以下错误/var/www/html/.htaccess: RewriteCond: bad flag delimiters

所以,我尝试了,根据链接enforce-https-laravel

  • 要按照链接中所述在laravel应用中配置.htaccess,请刷新所有内容`php artisan config:cache,重试运行状况检查,但结果相同

    < / li>
  • 我删除了.htaccess并配置了app/Providers/AppServiceProvider.php

    use Illuminate\Contracts\Routing\UrlGenerator; 

    public function boot(UrlGenerator $url)
    {
       if(env('ENFORCE_SSL', false)) {
         $url->forceScheme('https');
       }
    }
  • 并在ENFORCE_SSL=true中添加了.env,然后按照相同的 link 中的说明添加了php artisan config:cache,这是一种比.htaccess更新的方法。
  • li>

但结果相同

我不知道该怎么做或如何解决此问题。 我希望能够使用ssl访问该网站。请帮忙。谢谢。

enter image description here

1 个答案:

答案 0 :(得分:1)

根据评论,问题在于运行状况检查已设置为在ALB和EC2之间使用HTTPS。但是,由于ALB终止了SSL连接,因此ALB和EC2之间的所有通信都使用HTTP,而不是HTTPS。

因此,无法正常运行的健康检查的解决方案是对它们使用HTTP,而不是HTTPS。