I есть приложение, работающее по адресу http: // localhost: 6512 , и определение виртуального хоста следующим образом:
<VirtualHost *:80>
ServerName ldpmarmotta.example.com
ProxyPassMatch ^/(.*)$ http://localhost:6512/marmotta/$1
</VirtualHost>
У меня возникают две проблемы с указанным выше определением:
Вы говорите: « У меня есть приложение, работающее на http: // localhost: 6512 », но в контексте вашего вопроса (и этого самого ответа ), лучше было бы сказать:
Кроме того, вы говорите: « [...] определение виртуального хоста следующим образом ... », и, опять же, было бы лучше сказать:
Сказав выше (Кстати: я прав? Если нет, пожалуйста, добавьте комментарии), вы говорите, что у вас есть две проблемы.
Что касается первого:
Весь трафик на этот сервер, включая http://example.com , направляется на http: // localhost: 6512
Я бы скажем, что ЕСЛИ имя хоста example.com
разрешается в один из IP-адресов хоста, на котором запущен Apache, ТОГДА это ожидаемое поведение как:
ServerName example.com
.... Итак Опять же, не вижу проблемы.
Опять же, если я ошибаюсь в некоторых предположениях, пожалуйста, дайте мне знать.
Что касается вашей второй «проблемы», я вижу, что она охватывает два разных момента. Первый:
Запрос на ldpmarmotta.example.com направляется на http: // localhost: 6512
и, опять же, это кажется мне ожидаемым поведением, поскольку это именно то, что вы настроили на своем виртуальном хосте.
Второй момент:
Я был не ожидая, что URL-адрес изменится, но ответ вернется ldpmarmotta.example.com
Я не уверен на 100%, что именно вы пытаетесь описать, но ... если я вытащу свой (пыльный) хрустальный шар, держу пари, у вас возникнут проблемы с ProxyPassing : у вас работает собственный демон HTTP ( my_daemon ), но вы не хотите открывать его напрямую в Интернет. Итак, вы помещаете перед ним стандартный Apache и ... любезно просите Apache выполнять HTTP-запросы ProxyPass в обратном направлении к Интернету и вашему демону.
В таком сценарии .... вам просто нужно полагаться на ProxyPass
И ProxyPassReverse
.
Что-то вроде:
ProxyPass / http://localhost:6512/marmotta/
ProxyPassReverse / http://localhost:6512/marmotta/
(Кстати: вы использовали ProxyPassMatch
, но в качестве REGEX вы определили, что он соответствует ... всему, чем он действует точно как стандартный ProxyPass. Поэтому я предлагаю использовать
Что касается ProxyPass
/ ProxyPassReverse
, подробное использование ... в Интернете это буквально FULL из подробный учебник / статьи, так что .... вам будет легко узнать подробности: -)
HTH.