Задать вопрос

Как открыть доступ к сайту в локальной сети через apache

Всем привет,

Есть сайт в локальной сети (веб морда некой железяки). Есть apache в той же сети, но вдобавок и с публичным IP видимым из инета. Хотелось бы обеспечить доступ к локальному сайту из интернета через apache.

Единственный вариант, который нашел — mod_proxy.:
ProxyPass /foo http://192.168.10.10 ProxyPassReverse /foo http://192.168.10.10

Захожу на сервер в папку /foo — вроде работает. Появляется главная локального сайта. Но форму авторизации мой «прокси» уже не осиливает. После post-запроса из формы авторизации apache уже не форвардит ничего на сайт, а ищет искомый url у себя, и, ничего не найдя, возвращает ошибку.

Можно ли как-то обойти эту проблему? Может я вообще не в том направлении копаю? Как обходят этот момент веб-анонимайзеры?
  • Вопрос задан
  • 10266 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
shadowalone
@shadowalone
не привязывайте proxypass к папке, сделайте отдельный домен, и проксируйте его на железку.
Ответ написан
Комментировать
Хотелось бы обеспечить доступ к локальному сайту из интернета через apache.

ключевой момент, зачем через apache это пускать?

пусть этим роутер на входе занимается.
Ответ написан
Комментировать
@mayorovp
Приведите пример той формы, которую прокси не осиливает. Предсказываю, что там забит путь к action от корня сайта, а не относительный. Если это действительно так, то у проблемы есть три решения:

1. Изменить пробрасываемый сайт так, чтобы все ссылки в нем были относительными. (Невозможно на современных сайтах с развитым роутингом, но когда-то давно считалось хорошим тоном).
2. Изменить пробрасываемый сайт так, чтобы все пути к его страницам начинались с /foo — для многих CMS такая модификация поддерживается из коробки, также с большой вероятностью такая модификация будет довольно простой для сайтов на Tomcat или ASP.NET
3. Выделить для пробрасываемого сайта отдельный порт или виртуальный хост.
Ответ написан
demimurych
@demimurych
Если на машине которая торчит во внешний мир, апач нужен только для того чтобы дать доступ к сайту из локалки то от него можно вообще отказаться.
Достаточно посредством iptables пробросить 80 порт на машину внутри локальной сети.

Либо, если апач все же нужен, пробросить какой-то другой порт (например 8080). В результате доступ из внешнего мира к сайту который в локалке будет обеспечиваться по запросу адрес машины торчащей во внешний мир:8080
Ответ написан
Комментировать
demimurych
@demimurych
del
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы