Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

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