Laravel应用程序在AWS中登录时刷新页面吗?

时间:2019-02-05 15:34:38

标签: laravel amazon-web-services docker nginx amazon-ecs

我有一个非常奇怪的情况。我创建了一个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则可以正常工作。

感谢您提出的任何建议。

1 个答案:

答案 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()
  {
      //
  }
}