Symfony в nginx https + лак + apache http = цикл перенаправления или - PullRequest
0 голосов
/ 28 августа 2018

У меня есть конфигурация Symfony в nginx https + лак + apache http = цикл перенаправления

Я поставил схемы маршрутизации, чтобы получить ссылки https: ['https'] но получить петлю перенаправления почему? похоже, что Symfony не просто создает ссылки с https, но возвращает перенаправление, если получит http - мне нужны http-страницы для кэширования на лаке, а ссылки https.

Обновление 1 Когда я не ставлю схему в маршрутизации и запускаю страницу через https, почти все работает - без

1 маршрутизация создает абсолютные ссылки http

2 liip представь ту же ситуацию

1 Ответ

0 голосов
/ 29 августа 2018

Если вы получаете перенаправление на https, несмотря на использование https при посещении страницы, то оригинальный протокол не перенаправляется на сервер, который обрабатывает ответ.

Существует заголовок X-Forwarded-Proto, который должен содержать исходный протокол до его прохождения через прокси. Symfony должен уважать этот заголовок и признавать, что запрос является безопасным и не перенаправляет (а также установить все ссылки на https: // urls, если необходимо)

Вам необходимо настроить Apache (который, как я полагаю, завершает соединение https и имеет сертификаты), чтобы этот заголовок соответствовал исходному протоколу запроса.

Похоже, вам может понадобиться доверять прокси, прежде чем Symfony будет подчиняться заголовкам Документы Symfony для прокси

// public/index.php

// ...
$request = Request::createFromGlobals();

// tell Symfony about your reverse proxy
Request::setTrustedProxies(
    // the IP address (or range) of your proxy
    ['192.0.0.1', '10.0.0.0/8'],

    // trust *all* "X-Forwarded-*" headers
    Request::HEADER_X_FORWARDED_ALL
);
...