[Proposal] Expose HTTP and Stream proxy modules structures for developers.
sdunn934 at gmail.com
Mon Sep 25 14:27:40 UTC 2023
On Mon, 25 Sep 2023 at 15:22, Roman Arutyunyan <arut at nginx.com> wrote:
> Hello Andrey,
> On Sun, Sep 24, 2023 at 02:30:14PM +0300, Andrey Kulikov wrote:
> > Hello,
> > Sometimes custom module developers need to iterate over configured
> > location(s), configured in some or all server(s) blocks.
> > For example, to perform post-initialization steps, defined by custom
> > directives in their modules.
> > Now it is virtually impossible.
> > I've posted question about this matter few years ago:
> > https://mailman.nginx.org/pipermail/nginx-devel/2016-October/008882.html
> > Since then, I received quite a few private emails about whether I
> > in my findings.
> > So, I'm not alone, who faced this issue.
> You can iterate over locations in a server block using "locations" queue in
> ngx_http_core_loc_conf_t. You need to use the location configuration at
> the server level to access the queue. Referencing the example from your
> email, it should be something like this:
> clcf = cscfp[s]->ctx->loc_conf[ngx_http_core_module.ctx_index];
> /* iterate over clcf->locations */
> See ngx_http_core_location() as an example of how this queue is filled and
> ngx_http_merge_locations() as an example of how to iterate over it.
> > Fortunately, the described goal could be easily achieved by making just
> > internal proxy modules structures available in a separate header.
> > After that implementation of desired functionality is just a matter of
> > writing a few lines of code.
> Accessing proxy module to iterate over locations does not sound like the
> right decision.
> > Patches а following.
> > No functional changes, just code movement from .c to .h files.
> > Development community, at least through my voice, will be grateful to see
> > them applied to the latest development branch.
> > --
> > Cheers,
> > Andrey
> Roman Arutyunyan
> nginx-devel mailing list
> nginx-devel at nginx.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the nginx-devel