Lumen не обнаруживает https за обратным прокси - PullRequest
0 голосов
/ 29 января 2020

У меня есть Lumen API за обратным прокси в контейнере docker, который отвечает только на порт 80. Таким образом, клиент запрашивает определенный домен https://xyz.ab/api/endpoint и все работает нормально.

Но если вы хотите использовать Request->secure(), чтобы проверить, находитесь ли вы на http или https, lumen возвращает false (= http) и генерирует неправильные URL.

Я пытался использовать URL::forceScheme("https");, чтобы указать lumen на использование В любом случае https, но lumen по-прежнему настаивает на http.

Я не хочу устанавливать сертификат внутри своего контейнера только для того, чтобы lumen поверил в https.

Есть ли место, где я могу настроить lumen глобально использовать https вместо http?

Спасибо.

1 Ответ

0 голосов
/ 31 января 2020

Спасибо, PtrTon. Это был абсолютно правильный ответ. Lumen использует Illumintae\Http\Request, который расширяет Symfony\Component\HttpFoundation, который включает метод * 1003. * .

Создайте файл конфигурации с моими доверенными прокси.

Настройте мой обратный прокси-сервер для перенаправления правильных заголовков:

  • X_FORWARDED_PROTO = https
  • X_FORWARDED_HOST = {HTTP_HOST}
  • X_FORWARDED_FOR {HTTP_CLIENT_IP}
  • X_FORWARDED_PORT = {SERVER_PORT}

сс достаточно добавить X_FORWARDED_PROTO = https или X_FORWARDED_PORT = 443, потому что это значения, которые ищет метод secure (). Как только вы добавите их и скажете lumen, что доверяете прокси, secure () возвращает true.

...