Подготовлен новый выпуск модуля ngx_php с реализацией встраиваемого в nginx интерпретатора языка программирования PHP. Модуль позволяет создавать обработчики запросов на PHP, модифицировать запрос/ответ, фильтровать тело ответа и заголовки, создавать заглушки для блокирования уязвимостей в web-приложениях, организовывать проверку доступа. По сравнению с запуском PHP при помощи fpm модуль ngx_php обеспечивает доступ к внутренним API nginx и демонстрирует существенный прирост производительности (от 2 до 10 раз).
location = /nginx_request { set $a 123; content_by_php ' echo ngx_request::document_uri(); echo "ngx::query_args()n"; var_dump(ngx::query_args()); $a = ngx_var::get("a"); var_dump($a); '; }
Дополнительно можно отметить вышедшую на днях статью о применении модуля njs (NGINX JavaScript module) для создания виртуальных патчей для блокирования уязвимостей и проблем в web-приложениях (использование как своеобразного аналога ModSecurity).