Laravel 5.7 не генерирует маршруты HTTPS, если на веб-сервере не установлен слой шифрования - PullRequest
0 голосов
/ 26 сентября 2018

Текущая настройка сервера выглядит следующим образом.

Сервер с обратным прокси-сервером nginx, указывающим на несколько контейнеров Docker.Наше приложение Laravel 5.7 работает в одном из этих контейнеров с nginx + php7.2 FPM

Веб-сервер внутри докера должен передать ответ INSECURE обратному прокси-серверу, который делает его SECURE на внешнем уровне.

Контейнерный веб-сервер прослушивает 80.

Все URL-адреса, сгенерированные Laravel, являются HTTP, хотя протокол явно указан как HTTPS в настройке APP_URL config / app.php.

У меня естьтакже попробовал несколько других трюков, промежуточное программное обеспечение sslizing и тому подобное, но ни один из них, похоже, не работает.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Удалось сделать это с помощью TrustProxies и изменив конфигурацию nginx.Я оставлю здесь соответствующие настройки прокси, если это кому-нибудь поможет в будущем:

proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header   X-Forwarded-Host $server_name;
proxy_set_header   X-FORWARDED-PROTO https;
0 голосов
/ 26 сентября 2018

Вы должны заполнить $proxies свойство в TrustProxies middleware https://github.com/laravel/laravel/blob/master/app/Http/Middleware/TrustProxies.php, например:

protected $proxies = [
  'ip1',
   'ip2',
];

Подробнее об этом можно прочитать в Настройка раздела доверенных прокси

...