Как я могу сконфигурировать nginx для обслуживания страницы "сервер перегружен" или не загружен?

У меня есть клиент, который ожидает подключения к национальному телевидению сегодня вечером, и они просто сказали мне (любите, как это работает, а?). Я пытаюсь спланировать кое-какие возможности за то небольшое время, которое у меня есть, и единственное, что я должен попробовать, - это какая-то форма страницы "не хватает".

Идея состоит в том, чтобы (а) определить порог, который говорит: "это то, что означает перегрузка", (б) сравнивать текущую нагрузку с [а] в каждом запросе, и если текущая нагрузка>= [а], (в) показывать 503 стр.

Дело в том, что я понятия не имею, как это обычно называют, поэтому поиск в Google оказался очень небольшим. Я знаю о mod_qos для Apache, но этот клиент работает на nginx, и я не смог найти эквивалент для nginx.

Любая помощь будет принята с благодарностью. Спасибо!

2 ответа

Нет точного эквивалента для Nginx, потому что он на самом деле не нужен. Сам Nginx не станет вашим узким местом, это почти гарантировано.

Это не значит, что у вас не будет проблем. Скорее всего, ваш сервер будет загружен процессором, или вам не хватит пропускной способности для обслуживания файлов. Nginx - это обратный прокси-сервер HTTP, однако он не хочет отслеживать вещи, и я думаю, это отражено в типе модулей, которые люди пишут для него.

У вас есть два основных варианта. Если ваш бэкэнд сконфигурирован должным образом, чтобы можно было запускать только определенные процессы, чтобы у вас никогда не было нехватки памяти и чтобы ваш ЦП не был слишком занят, вы можете просто определить страницу ошибки для ошибки тайм-аута 504 и Скажите людям, что вы переполнены, и попробуйте немного перезагрузить.

Если вы выполняете балансировку нагрузки и предпочитаете, чтобы nginx ограничивал запросы, вы можете использовать один из сторонних модулей, таких как EyBalancer или HTTP Health Check, хотя я не могу дать какие-либо подробности о том, как они справляются с перегрузкой.

Это должно делать то, что вы запрашиваете, когда система начинает отказывать: error_page 500 502 503 504 /50x.html; Просто сделайте эту страницу размером 50x.html так, как вам нравится.

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

Другие вопросы по тегам