Конфигурация Apache для представления нескольких локальных http-сайтов как одного общедоступного https-сайта.

Я уверен, что есть простое решение, но я ударился головой о документацию Apache, что кажется вечностью... возможно, кто-то может дать мне подсказку?

В локальной сети у меня есть несколько веб-сайтов (которые, как мы должны предположить, имеют непрозрачные реализации), каждый из которых работает в отдельном домене... и они работают просто отлично.

Я хочу открыть эти веб-сайты через https, но у меня есть доступ только к одному подходящему IP-адресу, поэтому желательно сопоставить путь /app1/ с внутренним сайтом с именем хоста app1 и путь /app2/ к внутреннему сайт с именем хоста app2 - и это моя цель.

Я пробовал играть с «Модулем Apache mod_proxy» — и я пробовал различные комбинации ProxyPass, ProxyPassReverse и разделов — все с той же проблемой. Сайт по адресу http://app1.example.com/ содержит страницы со ссылками на URI в форме " /submit.php" и "/base.css" - которые работают относительно схемы с несколькими сайтами http - но неверны в общедоступной схеме https, где должно быть несколько корней - идентифицируются префиксом пути в общедоступном URI. .

Как лучше всего обеспечить правильный перевод этих URI? Подходит ли mod_proxy для такого рода задач?


person aSteve    schedule 02.03.2011    source источник


Ответы (2)


Вам нужен SNI, идентификация имени сервера.

То, чего вы хотите достичь, не может быть достигнуто веб-сервером самостоятельно, ему нужно, чтобы клиент был хорошим и запускал зашифрованный сеанс только после того, как он отправил доменное имя, иначе это невозможно.

Вот руководство, techrepublic, удачи.

person J.N.    schedule 02.03.2011
comment
Я (сильно) подозреваю недоразумение. Я надеялся включить URIS для иллюстрации, но stackoverflow.com помешал мне это сделать. У меня есть сайты app1.example.com и app2.example.com для внутреннего использования. Я хочу показать их как ssl.example.com/app1 и ssl.example.com/app2 соответственно. Это все о переводе URI, который веб-сервер определенно может сделать - в принципе... к сожалению, я не знаю волшебного синтаксиса конфигурации. - person aSteve; 03.03.2011

Если это поможет другим людям...

Мое окончательное решение состояло в том, чтобы использовать mod_proxy для перенаправления запросов с сервера SSL на мои внутренние серверы... но по разным причинам оказалось гораздо проще перевести URI на отдельном этапе, где размещены внутренние серверы. Я использовал mod_rewrite для удаления префикса пути — и он прекрасно работает.

Жаль, что нет очевидного способа сделать это в конфигурации SSL-сервера (пожалуйста, поправьте меня, если я просто упустил это из виду), и я потратил много времени на поиск mod_html_proxy - который был довольно строгим в отношении html. перевел бы. В любом случае предпочтительнее переводить выбранные URI в Apache, чем заставлять Apache переводить документы целиком.

person aSteve    schedule 03.03.2011