PHP позади прокси-сервера nodejs без ssl - PullRequest
0 голосов
/ 12 марта 2019

У меня есть приложение node js, которое запускается по протоколу «https» через порт 443. Это приложение действует как обратный прокси-сервер, если путь URL начинается с «/ blog». все запросы с URL, начинающимся с "/ blog", перенаправляются в apache без использования SSL-соединения Но браузер использует соединение SSL для соединения с Nodejs. Поскольку apache получает запросы со схемой URL «http://"», PHP $_SERVER['https'] не установлен на «on», что приводит ко всем URL статических ресурсов, таких как CSS, файлы JavaScript начинаются с «http://".

Поэтому браузер выдает ошибку, что страница загружается через «https». Но запрашивая ресурс у "http://"., что приводит к блокировке всех файлов CSS и javascript.

Теперь я ищу способ как-то обмануть PHP, что запрос идет от «https» вместо «http». Я знаю, что могу просто отредактировать код и поместить $_SERVER['https'] = 'on'; в начале каждого скрипта. Но это не выглядит элегантным способом решения проблемы. Я хотел бы знать о любом решении, которое работает для каждого каталога. Так же, как файл "htaccess".

1 Ответ

1 голос
/ 13 марта 2019

Убедитесь, что ваш обратный прокси-сервер устанавливает заголовки X-Forwarded. Затем в корне вашего документа apache создайте файл .htaccess и поместите в него следующий код.

SetEnvIf X-Forwarded-Proto https HTTPS

Это будет применяться только к каталогу, в котором находится этот файл. Поэтому вместо того, чтобы поместить этот файл в корень документа, вы можете разместить его там, где вы хотите установить схему URL «https».

...