Nginx несколько экземпляров - PullRequest
0 голосов
/ 12 июня 2019

У меня есть экземпляр EC2 с AWS, и я установил nginx и создал несколько блоков серверов для сервера нескольких приложений.

Однако, если nginx отключается, все приложения также отключаются.

Есть ли способ настроить отдельный экземпляр nginx для каждого приложения? Поэтому, если один экземпляр nginx выйдет из строя, он не повлияет на другие экземпляры.

Ответы [ 4 ]

1 голос
/ 20 июня 2019

Если возможно использовать ELB вместо nginx.это будет более удобно, но если ELB не работает для вас.nginx уже поддерживает режим High Availability , чтобы избежать проблемы, о которой вы упомянули, с единственной точкой отказа. Официально здесь это задокументировано https://www.nginx.com/products/nginx/high-availability/ это лучше, чем использование одного компьютера nginx для каждого приложения и получение большей доступности

1 голос
/ 14 июня 2019

Да, технически возможно установить 2 экземпляра nginx на одном сервере, но я бы сделал это по-другому.

1 - Вы можете просто создать несколько экземпляров EC2. Недостатком этого подхода является то, что, возможно, его будет сложнее поддерживать в зависимости от того, сколько экземпляров вы хотите.

2 - Вы можете использовать Docker или любую из его альтернатив для создания контейнеров и решения этой проблемы. Вы можете создать столько контейнеров, сколько вам нужно, и полностью отделить экземпляры nginx. Хотя докер прост в освоении и сразу начинает его использовать, недостатком этого подхода является то, что вам нужно приложить немного усилий, чтобы изучить его, и у вашего основного экземпляра EC2 должно быть достаточно ресурсов для совместного использования между контейнерами.

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

0 голосов
/ 17 июня 2019

Для nginx могут быть некоторые издержки, если вы сделаете это таким образом, и ваш nginx может быть сложно поддерживать позже, потому что существует много экземпляров nginx.Ex.Если вам нужно обновить или добавить некоторые модули, это будет сложнее.

Как насчет того, если вы попытаетесь использовать группу автоматического масштабирования EC2 хотя бы с минимальным 1 и желаемым 1?Так что он автоматически запустит новый экземпляр, если текущий отключится.

Если вам нужно сохранить некоторые настройки, такие как эластичный ip вашего EC2, вы можете попытаться найти восстановление экземпляра EC2.Это восстановит ваши настройки в отличие от группы автоматического масштабирования.

Но было бы лучше, если вы будете использовать балансировщик нагрузки, такой как ALB, и использовать как минимум 2 экземпляра.Использование ALB также сделает вас более безопасным.Вы также можете прочитать о целевых группах ALB.Это даст вам больше возможностей для решения вашей текущей проблемы.

0 голосов
/ 16 июня 2019

Тип избыточности, который вы ищете, обычно обеспечивается балансировщиком нагрузки или обратным прокси-сервером на практике. Есть много способов, которыми это может быть достигнуто архитектурно, но в целом это выглядит так;

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

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

...