目标组 443 给出以下代码的健康检查失败:[502]
Target group 443 gives Health checks failed with these codes: [502]
我想部署一个 Laravel 网站到亚马逊,所以我做了以下步骤:
- 使用 Elastic Beanstalk 部署了 Laravel 应用程序
- 配置Route:53实例指向EC2的Ip
- 已创建具有两个侦听器的应用程序负载均衡器,一个在 80,一个在 443
- 创建了2个目标组Tg80和Tg443并分别指定监听器
请注意,Tg443 具有有效的 SSL 证书
将 Ec2 的安全组更改为负载均衡器的安全组
- 将 Route:53 中的 A 实例更改为负载均衡器的
**结果:**
该站点在 80 端口上与 http 完美运行,同样用于健康检查,我可以从任何浏览器正常访问该站点
站点 returns [502 Bad Gateway] https:443
在(ssh之后到实例)/var/log/httpd/error_log出现如下错误/var/www/html/.htaccess: RewriteCond: bad flag delimiters
所以,我试了,根据linkenforce-https-laravel:
如 link 所述,在 laravel 应用程序中配置 .htaccess
,刷新所有内容`php artisan config:cache,重试了健康检查,但 相同结果
我删除了.htaccess
并配置了app/Providers/AppServiceProvider.php
:
use Illuminate\Contracts\Routing\UrlGenerator;
public function boot(UrlGenerator $url)
{
if(env('ENFORCE_SSL', false)) {
$url->forceScheme('https');
}
}
- 并在
.env
中添加 ENFORCE_SSL=true
,然后在 link 中添加 php artisan config:cache
,这是一种较新的方法比 .htaccess
.
但结果相同
我不知道如何使用网络或如何解决这个问题。 我希望能够使用 ssl 访问该站点。请帮忙。谢谢。
根据评论,问题是健康检查设置为在 ALB 和 EC2 之间使用 HTTPS。但是,由于 ALB 终止了 SSL 连接,因此 ALB 和 EC2 之间的所有流量都是 HTTP,而不是 HTTPS。
因此,无法运行健康检查的解决方案是为它们使用 HTTP,而不是 HTTPS。
我想部署一个 Laravel 网站到亚马逊,所以我做了以下步骤:
- 使用 Elastic Beanstalk 部署了 Laravel 应用程序
- 配置Route:53实例指向EC2的Ip
- 已创建具有两个侦听器的应用程序负载均衡器,一个在 80,一个在 443
- 创建了2个目标组Tg80和Tg443并分别指定监听器
请注意,Tg443 具有有效的 SSL 证书
将 Ec2 的安全组更改为负载均衡器的安全组
- 将 Route:53 中的 A 实例更改为负载均衡器的
**结果:**
该站点在 80 端口上与 http 完美运行,同样用于健康检查,我可以从任何浏览器正常访问该站点
站点 returns [502 Bad Gateway] https:443
在(ssh之后到实例)/var/log/httpd/error_log出现如下错误
/var/www/html/.htaccess: RewriteCond: bad flag delimiters
所以,我试了,根据linkenforce-https-laravel:
如 link 所述,在 laravel 应用程序中配置
.htaccess
,刷新所有内容`php artisan config:cache,重试了健康检查,但 相同结果我删除了
.htaccess
并配置了app/Providers/AppServiceProvider.php
:
use Illuminate\Contracts\Routing\UrlGenerator;
public function boot(UrlGenerator $url)
{
if(env('ENFORCE_SSL', false)) {
$url->forceScheme('https');
}
}
- 并在
.env
中添加ENFORCE_SSL=true
,然后在 link 中添加php artisan config:cache
,这是一种较新的方法比.htaccess
.
但结果相同
我不知道如何使用网络或如何解决这个问题。 我希望能够使用 ssl 访问该站点。请帮忙。谢谢。
根据评论,问题是健康检查设置为在 ALB 和 EC2 之间使用 HTTPS。但是,由于 ALB 终止了 SSL 连接,因此 ALB 和 EC2 之间的所有流量都是 HTTP,而不是 HTTPS。
因此,无法运行健康检查的解决方案是为它们使用 HTTP,而不是 HTTPS。