js_shared_dict_zone
Определяет зону разделяемой памяти для хранения данных, доступных скриптам NJS в контексте stream NGINX.
Описание
Директива js_shared_dict_zone позволяет создать зону разделяемой памяти, предназначенную специально для использования со скриптами NJS в контексте stream NGINX. Эта директива задаёт один или несколько разделяемых словарей, к которым можно получить доступ из JavaScript через модуль NJS. Благодаря включению хранения в разделяемой памяти скрипты могут обмениваться данными между различными рабочими процессами, что особенно полезно для кэширования данных или других операций управления общим состоянием.
Синтаксис требует как минимум одного аргумента — имени зоны памяти, и может опционально включать определения размера. Это даёт возможность точно контролировать, сколько памяти выделяется и как структурируются данные для эффективного доступа. Контекст stream — это место, где должна быть размещена директива, что делает её актуальной при обработке TCP- или UDP-потоков данных. Преимущества использования разделяемых словарей включают снижение накладных расходов при повторных запросах данных и возможность для скриптов NJS сохранять состояние в ходе нескольких соединений.
При настройке js_shared_dict_zone важно правильно оценивать потребности в хранении и стратегии распределения памяти, поскольку чрезмерное использование памяти может привести к снижению производительности. Каждый разделяемый словарь работает независимо, что позволяет определять несколько зон для разных целей в зависимости от потребностей приложения.
Пример конфига
js_shared_dict_zone my_cache 10m;
Убедитесь, что указанный объём памяти достаточен для ожидаемой нагрузки данных, поскольку превышение лимитов может привести к ухудшению производительности.
Не забудьте правильно настроить права доступа при совместном использовании данных между рабочими процессами.
Избегайте использования больших объектов, которые могут вызвать значительные накладные расходы при передаче.