Назад | Перейти на главную страницу

Как перенаправить с помощью обратного прокси-сервера Apache при ошибках сервера

У меня есть несколько http и игровых серверов в сети, и в настоящее время я использую обратный прокси-сервер Apache2 для разделения трафика между доменами и машинами.

Я получаю значительно больше трафика на одну машину, чем на другие. Я хотел бы знать, с чего начать с использования моих виртуальных хостов для направления избыточного трафика на другую машину.

По сути, когда 192.168.1.5 недоступен или сильно загружен, я хотел бы вместо этого отправлять этот трафик на 192.168.1.6.

Я пробовал искать, но, очевидно, я даже не использую правильную терминологию. Извините за то, что был новичком в этом. Я все еще учусь и ценю любые советы и подсказки.

Спасибо, парни!

Хорошо, думаю, я нашел свой ответ.

Используя последнюю версию Apache и директиву FallbackResource, мы можем установить альтернативный пункт назначения для наших клиентов в случае, если основной пункт назначения недоступен. Более подробную информацию можно найти на Apache.org ниже ... https://httpd.apache.org/docs/2.4/mod/mod_dir.html#fallbackresource

По сути, просто добавьте строку внутри скобок VirtualHost с единственным разрешимым местоположением в качестве единственного аргумента. Вот так...

<VirtualHost *:80>
  ServerName foo.example.com
  DocumentRoot /var/www/html
  DirectoryIndex index.php
  FallbackResource http://192.168.1.5/overflow.html
</VirtualHost>

В моем конкретном случае я также использую ProxyPass и Reverse Proxy Pass с отдельным сервером для каждого VirtualHost, поэтому я немного упростил его для примера. Я считаю, что это должен быть верный пример.

Поправьте меня если я ошибаюсь ..

1. Из вашего вопроса я понимаю, что вы используете хост-узел с несколькими виртуальными машинами.

2. Кроме того, насколько я понимаю, вы маршрутизируете трафик через прокси-сервер Apache, создавая прокси-сервер vhost на узле хоста для каждой виртуальной машины.

3. Я предполагаю, что из вашего примера VM1 (192.168.1.5) и VM2 (192.168.1.6) в основном «одинаковы» и могут рассматриваться как клоны друг друга.

4. Вы хотите найти способ, чтобы при выходе из строя или перегрузке ВМ1 направлять трафик на ВМ2.

Если 1, 2, 3 представляет вашу ситуацию, а 4 - это то, что вы ищете, тогда решение простое ... вам просто нужно выделить столько ресурсов, сколько вы можете позволить для своей основной виртуальной машины. Используя вторую виртуальную машину на том же узле, вы не решите свою проблему.

Хорошим решением было бы оставить VM1 на вашем реальном сервере и перенести клон VM2 на другой сервер с дополнительными ресурсами.

Затем на первом сервере ... между прокси-сервером apache хост-узла и VM1 вы можете установить балансировщик нагрузки по вашему выбору.

Затем ... в зависимости от политики балансировщика нагрузки вы можете направить трафик на ВМ1 или направить трафик на второй сервер на ВМ2.

Надеюсь, поможет ..