Можно ли настроить Apache как статический веб-сервер и балансировщик нагрузки на одном и том же порту?

Я использую Apache 2.4.7 на Windows 2016 Server в качестве балансировщика нагрузки между несколькими приложениями Spring Boot REST, использующими <VirtualHost *:8000> раздел. Это работает нормально.

Однако у меня также есть одностраничное приложение Angular, и я хочу разместить его файлы (HTML, CSS, JS и т. Д.) На том же сервере Apache. Мне нужно использовать тот же номер порта 8000, поскольку приложение Angular выполняет вызовы REST, в противном случае я получу ошибку CORS.

Мой вопрос: как можно настроить Apache как статический веб-сервер и балансировщик нагрузки на одном и том же порту?

1 ответ

Решение

Не уверены в своих конкретных настройках и деталях, но в целом вы хотите установить и обратный прокси-сервер Apache. Вам не нужно настраивать новый порт или что-то подобное. Как объясняют официальные документы Apache:

Помимо того, что Apache httpd (как и большинство других веб-серверов) является базовым веб-сервером и предоставляет статический и динамический контент конечным пользователям, он также может выступать в качестве обратного прокси-сервера, также известного как "шлюз". "сервер.

В таких сценариях сам httpd не генерирует и не размещает данные, а скорее получает контент одним или несколькими внутренними серверами, которые обычно не имеют прямого подключения к внешней сети. Когда httpd получает запрос от клиента, сам запрос передается на один из этих внутренних серверов, который затем обрабатывает запрос, генерирует контент и затем отправляет этот контент обратно на httpd, который затем генерирует фактический HTTP-ответ обратно клиенту,

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

Для получения более подробной информации о том, как можно настроить обратный прокси- сервер Apache, ознакомьтесь с ответом, который я разместил на сервере.

Другие вопросы по тегам