У меня есть веб-сервер (назовем его C1), на котором запущен сервер Apache/PHP, и он переадресован, так что я могу получить к нему доступ из любой точки мира. Однако в локальной сети веб-сервера есть еще один компьютер, на котором также установлен сервер Apache (назовем его C2). Я не могу изменить переадресацию портов и не могу изменить сервер Apache (т. е. установить пользовательские модули).
Есть ли способ получить доступ к C2 из каталога C1? (например, переход по адресу www.website.org/random_dir позволит мне просмотреть корень сервера Apache C2.)
Я стараюсь как можно меньше менять конфигурацию/другое (например, активировать модули и т. д.)
Есть ли возможное решение?
решение1
Вы можете разместить скрипт на C1, который перенаправляет ваши запросы на C2 и представляет его ответы. Это можно сделать с помощью веб-прокси.
Попробуйте установитьKnProxyилиphp-проксив качестве первого шага и посмотрите, соответствует ли один из них вашим потребностям.
Используя прокси, не забудьте вызвать C2 по его внутреннему IP-адресу (который виден C1).
решение2
Вы можете разместить скрипт в папке в C1, который использует curl для получения информации из C2. Назвав его index.php при посещении www.website.org/random_dir, вы получите свое поведение.
Однако для доступа к другим файлам или папкам вам придется передавать их как переменные, например: www.website.org/random_dir?folder=another_folder/subfolder&file=my_file
Подойдет ли это решение вашим потребностям?
решение3
Обратное проксирование — это название того, что вы пытаетесь сделать. Apache его поддерживает.
Обратное проксирование — это процесс, при котором веб-сервер пересылает HTTP-запрос или URL-адрес второму веб-серверу (возможно, изменяя его по пути), собирает ответ этого второго веб-сервера и доставляет результат (возможно, изменяя результат по пути обратно).
Этотхорошее место для начала. Я обновлю этот ответ некоторыми примерами, когда/если у меня будет время.
Я предупрежу вас об этом: Обратное проксирование отлично работает для статического контента и контента, где URL страницы не "жестко закодирован" ни в одной из ссылок динамического или сгенерированного Javascript контента. Когда у вас есть веб-приложение или приложение со своим собственным встроенным веб-сервером (например, Subsonic или удаленный доступ uTorrent), иногда вы можете оказаться в ситуации, когда ссылки, генерируемые веб-приложением, указывают на другое местоположение, чем то, к которому вы осуществляете обратное проксирование. Вот тут-то в игру вступают модули перезаписи, и все может стать запутанным. Не все веб-приложения можно успешно проксировать обратно.