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

Превратите весь трафик в Apache, когда IIS выключен

У меня есть выделенный сервер, который работает на Windows Server 2012. На нем размещается несколько веб-сайтов, использующих IIS. У меня на этом сервере установлен сервер Apache. Мне нужно знать, как перенаправить весь трафик для всех размещенных в IIS веб-сайтов на определенную страницу или ресурс в Apache, когда IIS отключен или приостановлен? то есть страница с простым сообщением сообщает, что сервер не работает, вместо сообщения по умолчанию 404 not found.

Вам понадобится балансировщик нагрузки перед обоими. Вы можете использовать балансировщик нагрузки apache (alb), обслуживающий порт 80. Настройте IIS и веб-сервер apache на более высоких портах. Балансировщик нагрузки должен действовать как отработка отказа, а не истинная балансировка нагрузки. Таким образом, alb прослушивает порт 80, и любые запросы передаются в IIS через порт более высокого уровня (например, 8181). Таким образом, как только IIS выйдет из строя, alb обнаружит сбой и переключится на веб-сервер apache, работающий на другом высоком порту (например, 8182).

Apache - не единственный программный балансировщик нагрузки, вы можете использовать nginx для выполнения той же работы или другие. Концепция та же.

РЕДАКТИРОВАТЬ:

Вот пример настройки отказоустойчивого nginx (активный / пассивный):

upstream backend {
    server 127.0.0.1:8181 fail_timeout=5s max_fails=3;
    server 127.0.0.1:8182 backup;
}

server {
    listen 80;
    server_name whatevs.com;

    location / {
        proxy_pass http://backend;
    }
}

Если первый бэкэнд (127.0.0.1:8181) выйдет из строя 3 раза (таймаут 5 секунд), nginx переключится на резервный хост (127.0.0.1:8182). Обратите внимание, что IP-адрес может быть таким же, или вы используете виртуальные IP-адреса, но порты должны быть разными, если используется один и тот же IP-адрес.

Надеюсь это поможет :-)