Перенаправление портов Symfony за обратным прокси

У меня есть приложение Symfony 3.2 (работает на порту 8443) с использованием FosUserBundle. Когда анонимные пользователи получают доступ кhttps: // [myurl] .com: 8443‘, они перенаправлены на’https: // [myurl] .com: 8443 / Войтидля процесса входа. Это перенаправление работает нормально при доступе к приложению, но теперь мы хотим использовать обратный прокси-сервер для пересылки запросов от клиентов к приложению. Клиенты будут использовать стандартный https порт 443.

Происходит следующее: пользователи получают доступ к приложению с помощью ‘https://myurl.com».
Запрос перенаправляется обратным прокси-сервером на веб-сервер (IIS), на котором размещено приложение через порт 8443.
Пользователь, делающий запрос, перенаправлен наhttps://myurl.com:8443/login‘, который не работает, потому что 8443 открыт только на стороне сервера.

Я пробовал разные решения в Symfony, но не смог заставить его работать:
-настроить обратный прокси в symfony: Request::setTrustedProxies(array('123.456.78.89'));
-задавать http_port/https_port in config.yml
-задавать $_SERVER['SERVER_PORT'] = 443;

Любая идея о том, как я могу решить это?

Спасибо

4

Решение

Откройте следующий файл:

web/app.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

// or, if your proxy instead uses the "Forwarded" header
// Request::HEADER_FORWARDED

// or, if you're using AWS ELB
// Request::HEADER_X_FORWARDED_AWS_ELB
);

Увидеть:

«Как настроить Symfony для работы за балансировщиком нагрузки или обратным прокси»http://symfony.com/doc/3.4/deployment/proxies.html

0

Другие решения

В дополнение к @Gor я думаю, что вы должны также настроить свой прокси-сервер для добавления заголовков X-Forwarded. В Nginx что-то вроде

location / {
proxy_pass              http://myurl:8443;
proxy_set_header        Host $host;
proxy_set_header        X-Real-IP $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header        X-Forwarded-Proto $scheme;
proxy_set_header        X-Forwarded-Port $server_port;
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector