proxy_buffers

Директива `proxy_buffers` задаёт количество и размер буферов, используемых для чтения ответа от проксируемого сервера.

Синтаксисproxy_buffers number size;
По умолчанию4 8k
Контекстhttp, server, location
Аргументы2

Описание

Директива proxy_buffers имеет ключевое значение для управления взаимодействием NGINX с вышестоящими серверами при обратном проксировании. Она указывает количество и размер буферов, выделяемых для хранения полученных от проксируемого сервера данных перед отправкой их клиенту. Каждый буфер используется для хранения фрагментов ответа, что позволяет NGINX эффективно собирать данные перед доставкой. Директива принимает два параметра: количество буферов и размер каждого буфера, указанный в байтах. Например, конфигурация proxy_buffers 8 16k; означает, что NGINX выделит восемь буферов, каждый из которых способен содержать 16 килобайт данных.

Когда NGINX обрабатывает запрос, требующий взаимодействия с upstream (например, с бэкенд‑сервером), ответ обрабатывается в этих буферах. Если ответ upstream превышает суммарный объём выделенных буферов, NGINX будет записывать избыточные данные напрямую клиенту, минуя буферы. Это важно для поддержания производительности под нагрузкой, так как помогает избежать перегрузки памяти, контролируя объём буферизуемых данных. Кроме того, если буферы недостаточно велики, это может привести к частым записям клиенту, что повлияет на пропускную способность.

Пример конфига

location / {
    proxy_pass http://backend;
    proxy_buffers 8 16k;
}

Убедитесь, что общий размер буфера достаточен для обработки ожидаемого размера ответа; в противном случае большие ответы могут привести к снижению производительности.

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

← Ко всем директивам