Рейтинг:0

Балансировка нагрузки nginx с несколькими серверными блоками

флаг lk

У меня есть следующая настройка, потому что я помещаю nginx перед двумя службами приложений Azure в разных регионах — без этого (например, имея службы приложений непосредственно в моем восходящем блоке) кажется, что nginx подключался к Azure по IP-адресу, а не по имя хоста, чтобы балансировщик нагрузки Azure не знал, куда направить запрос, или не установил правильное значение для заголовка узла.

Но теперь у меня есть проблема, что мой восходящий блок не выйдет из строя, если сервер в соответствующем блоке сервера не работает, потому что он подключается к блокам локального хост-сервера.

Я пытался использовать параметры proxy_next_upstream, но они, похоже, не делают то, что мне нужно.

Могу ли я добиться того, чего хочу, возможно, мои настройки восходящего потока, указывающие на локальные приложения, являются настоящей проблемой, но я не смог найти способ заставить nginx играть в мяч со службой приложений в противном случае.

восходящие локальные приложения {
    локальный хост сервера: 8001;
    локальный хост сервера: 8002;
}

сервер {

        место расположения / {
          прокси_пасс http://localapps;
          время ожидания ошибки proxy_next_upstream http_403;
          proxy_next_upstream_timeout 5 м;
          proxy_next_upstream_tries 20;
          proxy_connect_timeout 2;
        }

     слушать 443 ssl; # под управлением Certbot
     ssl_certificate <путь>/fullchain.pem; # под управлением Certbot
     ssl_certificate_key <путь>/privkey.pem; # под управлением Certbot
     включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
     ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot

}

сервер {
    слушать 8001;
    имя_сервера web01;

    место расположения / {
        proxy_set_header Host app1.azurewebsites.net;
        proxy_pass https://app1.azurewebsites.net;
        proxy_cookie_domain app1.azurewebsites.net mycustomdomain.com;
        proxy_ssl_certificate <путь>/fullchain.pem;
        proxy_ssl_certificate_key <путь>/privkey.pem;
        proxy_ssl_session_reuse включено;

    }
}

сервер {
    слушать 8002;
    имя_сервера web02;

    место расположения / {
        proxy_set_header Host app2.azurewebsites.net;
        proxy_pass https://app2.azurewebsites.net;
        proxy_cookie_domain app1.azurewebsites.net mycustomdomain.com;
        proxy_ssl_certificate <путь>/fullchain.pem;
        proxy_ssl_certificate_key <путь>/privkey.pem;
        proxy_ssl_session_reuse включено;
    }
}

сервер {
    если ($host = myvm.westeurope.cloudapp.azure.com) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot

    имя_сервера myvm.westeurope.cloudapp.azure.com;
    слушать 80;
    вернуть 404; # под управлением Certbot
}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.