[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