Release of nginx 1.17.1 and njs 0.3.3

Available master branch release nginx 1.17.1, within which the development of new features continues (in a parallel supported stable branch 1.16 only changes related to the elimination of serious errors and vulnerabilities are made.

All changes:

  • Directive added limit_req_dry_run, which activates the trial run mode, which does not apply restrictions on the intensity of request processing (without rate limit), but continues to account for the number of requests that go beyond the limits in shared memory;
  • When using the "upstream" directive in the "upstream" settings blockhash"to organize load balancing with client-server binding, if the key value is empty, the uniform balancing mode (round-robin) is now activated;
  • Fixed a workflow crash when using a cache in combination with the "image_filter" directive and redirecting the 415 error code handler using the "error_page" directive;
  • Fixed a workflow crash that occurred when using the built-in Perl interpreter.

Additionally, it can be noted issue njs 0.3.3, a JavaScript interpreter for the nginx web server. The njs interpreter implements the ECMAScript standards and allows you to extend nginx's ability to process requests using scripts in the configuration. Scripts can be used in a configuration file to define advanced request processing logic, generate a configuration, dynamically generate a response, modify a request/response, or quickly create problem-solving stubs in web applications.

The new release of njs fixes issues identified during fuzzing testing. Implemented global variable "process" with parameters and environment variables of the current process (process.pid, process.env.HOME, etc.). The ability to write to all built-in properties and method is provided. Added implementation of Array.prototype.fill(). Implemented support for the syntax proposed in ECMAScript 5 getters ΠΈ puts to bind an object property to a function, for example:

varo = {a:2};
Object.defineProperty(o, 'b', {get:function(){return 2*this.a}});

Source: opennet.ru

Add a comment