ngx_link_func_lib

Директива ngx_link_func_lib указывает разделяемую библиотеку для динамической линковки с приложениями NGINX.

Синтаксисngx_link_func_lib path_to_shared_library;
По умолчаниюnone
Контекстserver
Аргументы1

Описание

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

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

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

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

server {
    listen 8888;
    ngx_link_func_lib "/path/to/your/libcfuntest.so";
}

location = /testCFunGreeting {
    ngx_link_func_call "my_app_simple_get_greeting";
}

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

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

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

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