How to patch and/or upgrade Nginx from source in production environment?
Thomas Ward
teward at thomas-ward.net
Thu Oct 13 16:10:09 UTC 2022
If you're on Ubuntu you have some tradeoffs by doing this yourself.
You can surely uninstall the packages of nginx from Ubuntu and then
compile and install it yourself on each system. However, you will then
need to redo this compiling and patch software yourself. This is why
the packaging exists in Ubuntu - to allow easy installation and patching
of security vulns from the Security team (yes, Ubuntu Security Team and
Ubuntu Server Team both work to patch nginx in the various releases of
Ubuntu!).
You will lose that automated security patching, etc. and will have to
recompile your software on every machine every time there's a security
update if you do this yourself.
You can do the packaging yourself in a private repository (which will be
basically a 'from source' compile with the configure options, etc. YOU
want there to be), and then that package installs the compiled binaries,
etc. to whatever system you install that package on, but again you then
have to patch it yourself.
There's pros and cons to every approach, especially security related
concerns for software patching. The question is, how big is this
'production environment' and do you want to have to recompile and
reinstall every time there's a patch for a security problem.
Thomas
On 10/13/22 12:02, edflecko wrote:
> Thank you for your reply!
>
> I should have mentioned that I'm running in an Ubuntu environment so
> I'm not sure if that makes much difference? I like the idea of
> installing from source because I can control all of the options, but
> I'm wondering if it's worth going that route in a production environment?
>
> Thoughts? Opinions?
>
> Ed
>
> On Thu, Oct 13, 2022 at 3:49 PM PGNet Dev <pgnet.dev at gmail.com> wrote:
>
> Nginx is an easy build from source, thankfully.
>
> Deploying tarbal'd local source-builds to other machines is not
> terrible at all if you isolate your install DIR (e.g, 'everything'
> under /opt/nginx); ansible is your friend.
>
> But, it's a bit of a slog to deploy into usual distro env, avoid
> collisions, and if needed, cleanly uninstall. Certainly doable,
> but can be messy.
>
> To solve for that inconvenience, build your own packages from own
> sources on an open build system (e.g., SUSE's OBS, Fedora's COPR,
> etc), and install those packages via rpms.
> Or for that matter, even local rpmbuilds should be portable, as
> long as you correctly account for differences in target deployment
> ENVs.
>
> yes, rpm .spec files can be annoying. it's a trade-off.
>
>
> > I'm curious how many people run Nginx in a production
> environment that was installed from source and not a package.
> >
> > For those people who are running Nginx in this manner, how do
> you keep Nginx patched when patches are released?
> >
> > How do you upgrade your existing Nginx in your production
> environment while minimizing downtime?
> >
> > Thank you,
> > Ed
> >
> > _______________________________________________
> > nginx mailing list -- nginx at nginx.org
> > To unsubscribe send an email to nginx-leave at nginx.org
>
>
> _______________________________________________
> nginx mailing list --nginx at nginx.org
> To unsubscribe send an email tonginx-leave at nginx.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20221013/8a7cb7b6/attachment.htm>
More information about the nginx
mailing list