Live data from Hacker News

Nginx 1.9.11 with Dynamic Modules

mailman.nginx.org

11–20 of 63 posts

Re: Nginx 1.9.11 with Dynamic Modules

#11
post #3

This is great news for the pagespeed people.

Unfortunately, it looks like it may not be something will be able to work with. Instead of an ABI like Apache uses, Nginx went with signature checking. To load a precompiled module, the signature has to match. This means we would have to compile many different binary modules for every configuration people might have, and for every version of Nginx. Like several dozen.

As it stands, though, the module system would be very helpful for OS packagers, because they don't have to worry about signature mismatch.

Re: Nginx 1.9.11 with Dynamic Modules

#12
post #11
post #3

This is great news for the pagespeed people.

Unfortunately, it looks like it may not be something will be able to work with. Instead of an ABI like Apache uses, Nginx went with signature checking. To load a precompiled module, the signature has to match. This means we would have to compile many different binary modules for every configuration people might have, and for every version of Nginx. Like several dozen. As it stands, though, the module system would be…

I would think that containers would help obviate such concerns, since it would be rather trivial to keep even a hundred images in place for an automated compilation run.

Of course, serving the output would be harder, but still not impossible.

Re: Nginx 1.9.11 with Dynamic Modules

#13
post #5

A little more explanation of what that means from the docs: In NGINX 1.9.11 onwards a new way of loading modules dynamically has been introduced. This means that selected modules can be loaded into NGINX at runtime based on configuration files. They can also be unloaded by editing the configuration files and reloading NGINX. https://www.nginx.com/resources/wiki/extending/converting/

Hugely important. Compiling your own Nginx has never been trivial in modern development pipelines, and until now that's been the only way to use external modules.

Re: Nginx 1.9.11 with Dynamic Modules

#15
post #11
post #3

This is great news for the pagespeed people.

Unfortunately, it looks like it may not be something will be able to work with. Instead of an ABI like Apache uses, Nginx went with signature checking. To load a precompiled module, the signature has to match. This means we would have to compile many different binary modules for every configuration people might have, and for every version of Nginx. Like several dozen. As it stands, though, the module system would be…

So does nginx still have to know about all of the modules at compile-time? Or can I compile nginx, then later compile a module for that nginx?

Re: Nginx 1.9.11 with Dynamic Modules

#17

Good for them. It's worth to note that an nginx fork called Tengine (by Taobao) has a similar feature before. http://tengine.taobao.org/index.html

Yes and the only reason why Taobao forked it was because Nginix did not allow such feature to be upstream.

Re: Nginx 1.9.11 with Dynamic Modules

#19
post #15
post #11

Earlier quoted context omitted.

Unfortunately, it looks like it may not be something will be able to work with. Instead of an ABI like Apache uses, Nginx went with signature checking. To load a precompiled module, the signature has to match. This means we would have to compile many different binary modules for every configuration people might have, and for every version of Nginx. Like several dozen. As it stands, though, the module system would be…

So does nginx still have to know about all of the modules at compile-time? Or can I compile nginx, then later compile a module for that nginx?

That's fine, and is something you'd be able to do with PageSpeed.

(But I'd really love a way to distribute binary modules anyone could just use, with no additional compilation.)

Post reply on HN