ngx_link_func_call

Директива `ngx_link_func_call` вызывает указанную функцию из динамически подключаемого приложения в контексте блока location NGINX.

Синтаксисngx_link_func_call "function_name";
По умолчаниюnone
Контекстlocation
Аргументы1

Описание

Директива ngx_link_func_call позволяет NGINX вызывать функции, определённые в динамически подключаемых библиотеках, предоставляя возможность расширять функциональность NGINX за счёт интеграции приложений на C/C++. Это особенно полезно для приложений, которым требуются прямые взаимодействия с циклом запросов и ответов NGINX при использовании внешней логики или функций обработки, определённых вне самого NGINX.

Когда эта директива используется внутри блока location, она принимает один аргумент: имя вызываемой функции. Эта функция должна соответствовать символу, экспортируемому из разделяемой библиотеки, указанной ранее с помощью директивы ngx_link_func_lib. Если библиотека не загружена или функция не существует, при обработке запросов к этому location возникнет ошибка.

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

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

location = /example {
    ngx_link_func_call "example_function";
}

Убедитесь, что имя сопоставленной функции в директиве соответствует экспортированной функции в связанной разделяемой библиотеке.

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

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

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