#apache #apache2
#apache #apache2
Вопрос:
У меня установлен сервер с apache (2.4.18)
Я установил на сервере несколько приложений, таких как Grafana, Sonarqube и MySQL enterprise monitor (MEM)
У каждого приложения есть URL, подобный этому
http://test.com:9000
http://test.com:3000
Я ищу решение, которое позволит мне перенаправить этот URL с портом на URL с контекстом, что-то вроде этого
http://test.com:9000 --> http://test.com/sonar
http://test.com:3000 --> http://test.com/grafana
Я добавил некоторый код в файл /etc/apache2/sites-enabled/000-default.conf по умолчанию
Redirect permanent /sonar http://test.com:9000
Redirect permanent /grafana http://test.com:3000
но когда я ввожу http://test.com/sonar
в веб-браузере, он перенаправляет только на http://test.com:9000
URL
Я хочу, http://test.com/sonar
чтобы этот URL сохранялся в веб-браузере
Ответ №1:
Если вы используете Redirect permanent
, сервер отправит 301
ответ обратно клиенту (вместе с новым Location
). Это приведет к тому, что браузер отправит новый запрос, на этот раз в новое местоположение, а также новое местоположение будет показано в адресной строке браузера. Что вам нужно, так это обратный прокси. Для этого вам нужно убедиться, что mod_proxy включен в вашей конфигурации apache (обычно он включен по умолчанию), и поместить что-то вроде этого в ваш .conf
файл:
ProxyPreserveHost On
ProxyPass /sonar http://127.0.0.1:9000
ProxyPassReverse /sonar http://127.0.0.1:9000
ProxyPass /grafana http://127.0.0.1:3000
ProxyPassReverse /grafana http://127.0.0.1:3000
Вероятно, вам также придется уведомить свои приложения о том, что они выполняются в некорневом контексте (путем внесения некоторых изменений в конфигурацию):
Комментарии:
1. Привет, я пробовал это, но получаю пустую страницу в контексте / sonar
Ответ №2:
Вам нужно прокси-запросы, а не перенаправлять их. Используйте директиву ProxyPass, как указано в официальной документации apache proxy
Например, добавьте этот блок location в свою конфигурацию:
<Location "/sonar">
ProxyPass "http://test.com:9000"
</Location>
Комментарии:
1. Привет, я пробовал это, но получаю пустую страницу в контексте / sonar
2. Проверьте, правильно ли настроена конфигурация вашего sonar для приема прокси-запросов.