js_content
Директива `js_content` позволяет выполнять код JavaScript в ответ на HTTP-запросы, обеспечивая генерацию динамического содержимого в NGINX.
Описание
Директива 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 могут требовать внимательной обработки асинхронных операций.