smtp_client_buffer
Директива smtp_client_buffer задаёт размер буфера, используемого для коммуникации с SMTP-клиентом в Mail-модуле NGINX. — NGINX Mail Core
Описание
Директива smtp_client_buffer указывает размер буфера, который выделяется для чтения и обработки данных от подключённого SMTP-клиента. При работе с коммуникацией по протоколу SMTP поддержание подходящего размера буфера может быть критически важным для эффективной обработки запросов клиентов, особенно в сценариях с большими письмами или командами, которые могут превышать типичные размеры.\n\nКогда устанавливается соединение с SMTP-клиентом, NGINX будет использовать заданный размер буфера для чтения входящих данных. Эта директива принимает один аргумент, задающий этот размер, что позволяет администраторам масштабировать буфер в зависимости от ожидаемой нагрузки и характеристик SMTP-трафика. Если размер буфера слишком мал, это может привести к проблемам при чтении больших команд или писем за один раз, потенциально вызывая ошибки или снижение производительности. Поэтому рекомендуется тщательно настраивать это значение в соответствии с рабочей нагрузкой сервера и требованиями к производительности.\n\nКроме того, smtp_client_buffer можно установить глобально в блоке mail или конкретно в отдельных контекстах почтового сервера, что обеспечивает гибкость для разных сценариев применения, когда для оптимизации производительности и использования ресурсов могут потребоваться разные размеры буфера. Понимание баланса между объёмом используемой памяти и производительностью важно для оптимальной конфигурации.
Пример конфига
mail {
smtp_client_buffer 2k;
server {
listen 25;
protocol smtp;
}
}Установка слишком большого размера буфера может привести к избыточному потреблению памяти, особенно при высокой нагрузке.
Убедитесь, что заданный размер буфера соответствует максимально ожидаемому размеру SMTP-команды; слишком маленькие значения могут привести к усечению команды.