#nginx #load-balancing #high-availability
#nginx #балансировка нагрузки #высокая доступность
Вопрос:
Я использую nginx для балансировки нагрузки моего приложения. Я определил кластер как
upstream app_cluster {
server 123.101.10.15:8080; # Node.js instance 1
server 123.101.10.16:8080 backup; # Node.js instance 2
}
Я провожу тестирование сбоя сети. Допустим, я отключаю кабель локальной сети от
123.101.10.15 система.
Я получаю 403 при доступе к приложению с использованием IP-адресов nginx. И мой запрос не доходит до 123.101.10.16 .
Все запросы завершаются ошибкой.
Кто-нибудь может мне помочь в этом?
Заранее спасибо
Комментарии:
1. Что произойдет, если вы попытаетесь получить доступ
http://123.101.10.16:8080
напрямую? Я подозреваю, что вы получите ошибку 403. Если это так, убедитесь, что NGINX имеет необходимые разрешения для доступа Node.js . Ваша конфигурация балансировки нагрузки (отработки отказа) в порядке.2. @KeenanLawrence : Даже 123.101.10.16: 8080 также выдает 403.
3. Ладно, это хорошо. Теперь мы знаем, что проблема связана с вашим вторым сервером. Это проблема с разрешениями. Посмотрите на права доступа к каталогам и файлам, а также на права собственности вашего приложения Node на первом сервере и реплицируйте их на своем втором сервере. В зависимости от среды NGINX может быть запущен от имени другого пользователя на сервере 16, а не на сервере 15, поэтому обязательно примите это во внимание.
4. @KeenanLawrence: Как только локальная сеть заработает, я смогу получить доступ и ко 2-му узлу. Я не знаю, как это ведет себя.
5. @KeenanLawrence: Как только локальная сеть заработает, я смогу получить доступ как к узлу напрямую, так и к приложению, используя IP-адрес nginx