[PATCH 0 of 9] Upstream: re-resolvable servers.

Aleksei Bavshin a.bavshin at nginx.com
Thu Jun 13 22:28:55 UTC 2024


The series is a compilation of patches with the upstream re-resolve
feature from the Nginx Plus.  The original commits were rebased on top
of the current OSS code, grouped by features introduced and squashed.
Some formatting quirks and other minor oddities could be attributed to a
conscious effort to reduce divergence with the source branch.


This is a resubmission of the series from Feb 2023[1]. Main differences:

- The code is now identical to the NGINX Plus (sans features we're not
  cleared to publish at the moment and minor cosmetic differences).

  The implementation might be not perfect architecturally, but it's
  been heavily tested and has been running in many production
  environments for many years.  It's also already familiar to the team,
  simplifying the review, and serves as a good starting point for
  further improvements.

- The configuration directives are now explicitly disabled on Windows
  platform.  See the corresponding commit for the rationale.

- Tests are now ported to use the features available in the NGINX OSS
  and added to the series.


Known limitations:

- All the periodic resolve tasks are handled in the first worker
  process.

- The functionality requires a shared zone of a sufficient size to be
  configured in the upstream block.  A rough estimation is 2k for a
  configured server entry + 2k for each resolved address.
  The zone requirement could be lifted with local allocation of the
  resolved peer data, but implementing that was out of scope.

[1]: https://mailman.nginx.org/pipermail/nginx-devel/2023-February/4MCLSVRK7EX6DNKHFZN6CA4SKZUSA3GA.html


More information about the nginx-devel mailing list