Балансировщик нагрузки Google Cloud вызывает ошибку 502 - failed_to_pick_backend
У меня возникает ошибка 502, когда я использую облачный балансировщик Google с CDN, дело в том, что я почти уверен, что, должно быть, сделал что-то не так, настраивая балансировщик нагрузки, потому что, когда я удаляю балансировщик нагрузки, мой веб-сайт работает нормально.
Вот как я настраиваю свой балансировщик нагрузки здесь
- Должен ли я использовать проверку работоспособности HTTP или HTTPS, потому что, когда я настраивал проверку работоспособности HTTPS, мой веб-сайт некоторое время работал, а затем снова отключался
- Я проверил эту ссылку, похоже, у них такая же проблема, но у меня она не работает.
- Я следовал руководству форума openlitespeed, чтобы установить Keep-Alive Timeout (secs) = 60s в панели администратора сервера и настроить экземпляр для приема долговременных подключений, но у меня все еще не работает.
- Я добавил эти 2 правила брандмауэра после этой ссылки на облако Google, чтобы разрешить IP-адрес проверки работоспособности Google, но все еще не работал: https://cloud.google.com/load-balancing/docs/health-checks https://cloud.google.com/load-balancing/docs/https/ext-http-lb-simple
При проверке сообщения журнала балансировщика нагрузки отображается сообщение failed_to_pick_backend . Я попытался перенастроить балансировщик нагрузки, но это не помогло.
Я только начал изучать Google Cloud, и мои знания действительно ограничены, я был бы очень признателен, если бы кто-нибудь шаг за шагом показал мне, как решить эту проблему. Спасибо!
3 ответа
Публикация ответа - на основе вывода OP для улучшения пользовательского опыта.
Решение проблемы
error 502 - failed_to_pick_backend
менял Load Balancer с HTTP на протокол TCP и в том же типе менял проверку работоспособности с HTTP на TCP.
После этого LB как следует проходит через все входящие соединения и ошибка исчезла.
Вот еще немного информации о различных типах проверок работоспособности и о том, как выбрать правильный .
Сообщение об ошибке, с которым вы столкнулись, это " failed_to_pick_backend ". Это сообщение об ошибке означает, что код ответов HTTP генерируется, когда GFE не смог установить соединение с серверным экземпляром или не смог идентифицировать жизнеспособный серверный экземпляр для подключения к
На изображении я заметил, что ваша проверка работоспособности не удалась, что привело к появлению вышеупомянутых сообщений об ошибках, это поведение с ошибкой проверки работоспособности могло быть связано с:
Программное обеспечение веб-сервера не работает на внутреннем экземпляре
Программное обеспечение веб-сервера неправильно настроено на внутреннем экземпляре
Ресурсы сервера исчерпаны и не принимает подключения:
- CPU usage too high to respond - Memory usage too high, process killed or can't malloc() - Maximum amount of workers spawned and all are busy (think mpm_prefork in Apache) - Maximum established TCP connections
Убедитесь, что запущенные службы ответили 200 (ОК) на зонды проверки работоспособности, и проверьте время ожидания серверной службы. Тайм-аут серверной службы работает вместе с настроенными значениями проверки работоспособности, чтобы определить количество времени, в течение которого экземпляр должен ответить, прежде чем он будет считаться неисправным.
Кроме того, вы можете просмотреть это руководство по устранению неполадок, чтобы увидеть некоторые сообщения об ошибках (включая это).
Те, кто имеет опыт работы с Kubernetes на других платформах, могут быть сбиты с толку относительно того, почему их Ingress называют свои серверные части «НЕЗДОРОВЫМИ». Проверки состояния здоровья - это не одно и то же, что и тесты готовности и живучести.
Проверки работоспособности - это независимая утилита, используемая балансировщиками нагрузки GCP и выполняющая ту же функцию, но определенная в другом месте. Сбои здесь приведут к 502 ошибкам. https://console.cloud.google.com/compute/healthChecks