Live data from Hacker News

Nginx 1.9.11 with Dynamic Modules

mailman.nginx.org

31–40 of 63 posts

Re: Nginx 1.9.11 with Dynamic Modules

#31

load webserver.nlm (a reference for the old-timers here) Seems an odd feature for 1.9.11, why not wait for 2.0?

As long as it doesn't break API compatibility, why wait?

Because bugs happen. It's likely a change that reaches into the core of the product. Also, would give a psychological boost to upgrading to 2.0, while also subtly warning that the code will be immature until a few point releases are complete.

Re: Nginx 1.9.11 with Dynamic Modules

#32
post #30

Earlier quoted context omitted.

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.

Honest question: Why do you think it was non-trivial? What is/was complex?

I found that nginx actually "just works", however not all software is easy to compile and many of us shy away from compiling for various reasons.

Re: Nginx 1.9.11 with Dynamic Modules

#33
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…

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.

How does containers help? Building a hundred different nginx's shouldn't be neither harder nor easier if you stuff the binary in a container or not.

Re: Nginx 1.9.11 with Dynamic Modules

#34
post #30

Earlier quoted context omitted.

Honest question: Why do you think it was non-trivial? What is/was complex?

I found that nginx actually "just works", however not all software is easy to compile and many of us shy away from compiling for various reasons.

Compiling nginx is surprisingly easy and straightforward; a perfect example to get started with packaging for yourself.

Re: Nginx 1.9.11 with Dynamic Modules

#35
post #34

Earlier quoted context omitted.

I found that nginx actually "just works", however not all software is easy to compile and many of us shy away from compiling for various reasons.

Compiling nginx is surprisingly easy and straightforward; a perfect example to get started with packaging for yourself.

Indeed - but having built an nginx module, it's hard to convince others to use it. Often, nginx users are simply using the binary packages from their Linux distribution, and if they compile their own, they'll have to remember that they have a version that's compiled from source on the system and not the packaged one.

Re: Nginx 1.9.11 with Dynamic Modules

#36
post #30

Earlier quoted context omitted.

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.

Honest question: Why do you think it was non-trivial? What is/was complex?

I don't like installing packages outside of the apt/aptitude system. Creating a custom .deb requires a repo to store our fork of the code (or the code + our configuration parameters) plus a jenkins or similar job to build it, plus a place to store the build artifacts to make available to our fleet of boxes, which also need to be configured to pull images from said repository. There are many potential points of failure now. Rarely do I have package failures with my current infrastructure.

I'd rather trust the package/security team of my favorite distribution to do this for me.

When you live in the modern world of cattle not pets you optimize for things like this.

That being said our current nginx solution lives in a Docker container on top of Kubernetes so it would be fairly trivial at this stage to build our own nginx and bake it in... but I have to pick my battles.

Re: Nginx 1.9.11 with Dynamic Modules

#37
post #33

Earlier quoted context omitted.

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.

How does containers help? Building a hundred different nginx's shouldn't be neither harder nor easier if you stuff the binary in a container or not.

It gives you one image per configuration, instead of one build machine, or one stored VM. It makes it easier for a single machine to iterate over dozens or hundreds of build environments with a minimum of overhead.

For example, one Ubuntu machine with Docker can create build environments for every Linux based distro (and version thereof) that exists, and iterate through all of them when it comes time to build. The setup is not trivial, though it is easier than creating a similar environment with VMs or physical machines.

Re: Nginx 1.9.11 with Dynamic Modules

#38
post #30

Earlier quoted context omitted.

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.

Honest question: Why do you think it was non-trivial? What is/was complex?

Time of compilation is one issue. If you just wanted to add a module you would have to recompile everything. Likewise if you want to remove a module.

Although one advantage of requiring compilation is the user is probably more likely to use the latest version.

Re: Nginx 1.9.11 with Dynamic Modules

#40
post #20

Is this going to make it easier to enable stub_status module without compiling Nginx? (or buying NginxPlus) http://nginx.org/en/docs/http/ngx_http_stub_status_module.ht...

What problems are you having using stub_status?

I'm using the nginx mainline PPA and didn't have a problem enabling it.

Post reply on HN