js_content

Директива `js_content` позволяет выполнять код JavaScript в ответ на HTTP-запросы, обеспечивая генерацию динамического содержимого в NGINX.

Синтаксисjs_content function_name;
По умолчаниюnone
Контекстlocation, if in location, limit_except
Аргументы1

Описание

Директива js_content является частью модуля NGINX JavaScript и позволяет указывать код JavaScript, который будет выполняться при обработке HTTP-запроса в определённых контекстах, таких как location, if in location и limit_except. Данная директива принимает один аргумент — имя вызываемой JavaScript-функции. Указанная JavaScript-функция должна быть написана на NJS (подмножество JavaScript, совместимое с ECMAScript 5.1) и предположительно должна управлять ответом с помощью объекта ngx_http_request_t. Это позволяет разработчикам создавать сложную логику обработки запросов, включая генерацию динамического содержимого, взаимодействие с бэкенд-сервисами и изменение заголовков ответа.

Когда запрос попадает в блок location, содержащий директиву js_content, NGINX вызывает указанную JavaScript-функцию. Эта функция может обрабатывать параметры запроса, куки и другие HTTP-атрибуты, позволяя формировать настраиваемый ответ в зависимости от содержимого запроса. Кроме того, разработчики могут взаимодействовать с различными возможностями NGINX, например устанавливать коды статуса ответа или перенаправлять запросы. Это повышает гибкость и возможности NGINX как веб-сервера или обратного прокси для приложений.

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

location /dynamic {
    js_content my_js_function;
}

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

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

Учтите асинхронный контекст; функции JavaScript в NGINX могут требовать внимательной обработки асинхронных операций.

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