Я перемещаю существующий экземпляр Discourse с текущего хоста на виртуальную машину AWS EC2.
Сайт находится за балансировщиками нагрузки Amazon. Я уже успешно настроил app.yml, добавив соответствующие директивы set_real_ip_from, чтобы NGINX знал об IP-адресах балансировщиков. Я знаю, что это работает, так как вижу свой реальный IP при проверке последнего IP-адреса пользователя.
Однако, когда я пытаюсь загрузить резервную копию объемом 375 МБ со старого сервера, новый сайт начинает выдавать ошибки 429, когда файл загружен примерно на 35%, и процесс загрузки завершается неудачей. Заголовки в ответах 429 указывают на «discourse-rate-limit-error-code: id_10_secs_limit».
Это меня удивило. У меня было открыто окно Dev Tools браузера на вкладке «Сеть» (Network), и я видел, как загружается множество небольших фрагментов (полагаю, по 5 МБ) довольно быстро. У меня быстрое подключение к Интернету со скоростью 200 Мбит/с, так что, возможно, оно просто слишком быстрое для настроек ограничителя скорости по умолчанию? Или, возможно, предполагалось, что задачи администратора обычно выполняются из частной сети (что невозможно в моей настройке AWS)?
Но подождите, есть еще! Я попытался отключить ограничитель скорости, закомментировав строку «templates/web.ratelimited.template.yml» в файле app.yml и пересобрав приложение, но это не помогло. Я все еще получал ошибки 429, когда файл был загружен примерно на 35%.
Поэтому я быстро добавил нижеуказанные переменные окружения в файл app.yml, пересобрал его и наконец смог загрузить резервную копию для восстановления.
DISCOURSE_MAX_REQS_PER_IP_MODE: none
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: 1000
Я считаю, что это настройки ограничителя скорости, поэтому было странно видеть, что что-то реагирует на эти настройки, когда ограничитель скорости, как утверждалось, был отключен.
Итог: я хотел бы получить рекомендации по следующим вопросам:
- Должен ли ограничитель скорости блокировать загрузку резервных копий таким образом?
- Почему ограничитель скорости не был отключен, когда я закомментировал эту строку и пересобрал приложение?
Спасибо!