我有一个非常奇怪的情况。我创建了一个laravel应用,并在此Docker映像https://hub.docker.com/r/richarvey/nginx-php-fpm
中运行它该应用程序使用docker-compose和本地sidecar MySQL容器在本地运行良好,但是一旦部署到ECS中,它的行为就会很奇怪。当我单击“登录”时,页面只会刷新,并且不会进行任何后端调用。
容器的docker hub页面说,如果使用aws elb,则需要设置真实IP地址-我已经完成了(https://gitlab.com/ric_harvey/nginx-php-fpm/blob/master/docs/nginx_configs.md#real-ip--x-forwarded-for-headers)
我已经尝试了nginx中的几乎所有内容,以测试不是引起问题的原因,并且还启用了粘性会话。我尝试在laravel conf会话和nova文件中设置域名,甚至尝试使用数据库驱动的会话。
另外有趣的是,如果我使用laravel forge设置相同的配置,在子域route53 DNS前面添加ALB则可以正常工作。
感谢您提出的任何建议。
答案 0 :(得分:0)
原来,我需要在其中添加可信任的代理 https://laravel.com/docs/5.6/requests#configuring-trusted-proxies
,并在提供程序中强制使用https
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\URL;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
// force HTTPS
URL::forceSchema('https');
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}