Both the dynamic modules and Amplify technologies were revealed at this week’s nginx.conf event in San Francisco. With dynamic modules, Nginx wants to make it easier for module developers to share extensions for Nginx’s Web server, said Owen Garrett, head of marketing at the company. These modules have extended Nginx with capabilities such as authentication, security, and Lua programming.
Building extensions to Nginx has been a challenge, Garrett said, because the Nginx server can not be modified once a module is constructed and shipped. Currently, users have to set up a module in Nginx when creating the Nginx binary, Garrett said. “You have to do it at the very beginning and that approach lacks flexibility.” Dynamic modules allow for the addition of extra functionality to Nginx. This capability is targeted for inclusion in both the open source Nginx and Nginx Plus platform by the end of the year.
With Amplify, users would register their Nginx instance with a free SaaS offering and monitor factors such as usage of CPUs, network, traffic, memory, and disk. “It’s a tool to help you manage and monitor Nginx,” Garrett said.
Alerts are raised when there is a fault with an Nginx instance; users are given guidance on configuration. Currently, users are on their own with configuration and, thus, may not configure as optimally as they should, said Garrett. Nginx Amplify goes into a private beta release stage in about a month. Persons interested in the beta program can register at Nginx.com.
A user at Nginx at integration software vendor MuleSoft welcomes the additional information Amplify would provide. “The more information you can get, the easier troubleshooting [becomes],” said Serge Leschinksy, a devops architect at MuleSoft. The company uses Nginx as a proxy for API services.
Nginx on Wednesday also shed more light on NginScript, its JavaScript variant for configuring Nginx servers. NginScript features a custom virtual machine and byte-code compiler with fast startup and tear-down time, Igor Sysoev, founder of the Nginx server, said in a blog post. Blocking operations such as HTTP and subrequest can be suspended and resumed the same as other blocking operations in JavaScript.
Also, a configuration syntax allows for embedding of JavaScript snippets in an Nginx configuration. “These snippets are evaluated at runtime, as HTTP transactions proceed. You can create powerful conditional configurations, modify requests and responses on the fly, and adjust the internal operations of Nginx specifically for each request.” Plans call for adding capabilities to NginScript, such as the ability to fix application bugs, change business rules, handle sharding requests across servers, and personalize the user experience.