Я использую Apache 2.4.7 на Windows 2016 Server в качестве балансировщика нагрузки между парой приложений Spring Boot REST, использующих <VirtualHost *:8000>
section. Это работает отлично.
Однако у меня также есть одностраничное приложение Angular, и я хочу разместить его файлы (HTML, CSS, JS и т. д.) на том же сервере Apache. Мне нужно использовать тот же номер порта 8000
, поскольку приложение Angular выполняет вызовы REST, иначе я получу ошибку CORS.
У меня такой вопрос: как можно настроить Apache так, чтобы он работал и как статический веб-сервер, и как балансировщик нагрузки на одном и том же порту?
решение1
Не уверен в вашей конкретной настройке и деталях, но в целом то, что вы хотите сделать, это настройка иОбратный прокси-сервер Apache. Вам не нужно настраивать новый порт или что-то в этом роде. Как объясняется в официальной документации Apache:
Помимо того, что Apache httpd является «базовым» веб-сервером и предоставляет конечным пользователям статический и динамический контент, он (как и большинство других веб-серверов) может также выступать в качестве обратного прокси-сервера, также известного как «шлюзовой» сервер.
В таких сценариях httpd сам по себе не генерирует и не размещает данные, а скорее контент получается одним или несколькими бэкэнд-серверами, которые обычно не имеют прямого подключения к внешней сети. Когда httpd получает запрос от клиента, сам запроспрокси-серверна один из этих внутренних серверов, который затем обрабатывает запрос, генерирует контент, а затем отправляет этот контент обратно в httpd, который затем генерирует фактический HTTP-ответ обратно клиенту.
Итак, в вашем случае, то, что вам нужно знать об Apache, это то, что вы можете настроить пути и каталоги для определенного поведения в Apache. Таким образом, один URL может быть либо обработан для определенных конфигураций и поведения, либо даже проигнорирован.
Более подробную информацию о настройке обратного прокси-сервера Apache можно найти здесь.проверьте этот ответ, который я разместил на Server Fault.