Installing dynamic modules when Nginx itself is installed via yum/dnf (Linux)

steve at steve at
Thu Jan 7 03:53:35 UTC 2021

nginx -T

will provide you with the config that is used for the delivered version of nginx 1.18.0 under fedora. That's a good starting point. 


January 7, 2021 4:47 PM, "Phoenix Kiula" <phoenix.kiula at (mailto:phoenix.kiula at<phoenix.kiula at>)> wrote:
  Thank you Thomas. Much appreciate this, it sounds promising. Appreciate your clarity.  So if I:  1. Compile nginx via `dnf install nginx` and that becomes my system's Nginx, installed usually in `/etc/nginx`
  2. In a totally separate folder, say, `/usr/src`, I then download a tarball of Nginx and compile it along with the dynamic modules -- which will produce the .so files for said modules
  3. Copy over the modules into the usual `/etc/nginx/modules` folder from Step 1 this sequence of steps, how do I make sure that:   A. The compilation in Step 2 does not become my "system's nginx" (so when I do an `nginx -v` at the command prompt it should be refer to the nginx installed in Step 1 above, and *not* the one compiled via Step 2)  B. The compile in Step 2 will use the "same libraries" that DNF used? In the DNF version of life I didn't pick any libraries manually...DNF found what was on my system. Will the manual compile not do the same?  Many thanks!     
 On Wed, Jan 6, 2021 at 10:19 PM Thomas Ward <teward at (mailto:teward at> wrote: 
	I'm fairly familiar with the 'compiling process' for dynamic modules - the process is the same for NGINX Open Source as wel as NGINX Plus. 

	You would need to compile the modules alongside NGINX and then harvest the compiled .so files and put them into corresponding locations on the system you want to load the dynamic modules. In Ubuntu, we do this (or at least, I do) by using the same OS and libraries as installed on the target system (as well as the same NGINX version). 

	This being said, **compiling** NGINX is different than **installing** NGINX - you can *compile* the nginx version 1.18.0 with the dynamic modules and the same configuration as the Fedora version, and then **take the compiled module** and load it up in your installed nginx instance. Compiling NGINX to make the dynamic module does NOT require you to then install that NGINX version, provided that you match the `make` steps and installed/available libraries to those used in the original nginx compile done in Fedora. 

On 1/6/21 5:30 PM, Phoenix Kiula wrote:  
Thank you Miguel. But you misunderstood the question. This suggestion... 
  nginx blog as a great guide on it though (    
 ...misses the very first question in this thread: we cannot compile nginx from source on our server. At least not in a way that that compiled version would become the nginx installed in our *system*. We need to install nginx via the default Fedora dnf package manager, which at this time installs 1.18.0.  Now, what I don't mind doing is to compile nginx in some self-contained folder somewhere, then use that compilation to create the .so or whatever the module file for that version is....if all of this module compiling does *not* affect the system-installed dnf version of nginx. Is this possible?  If so, the instructions do not help with this. The first step in that official tutorial is to compile nginx and that compiled nginx then becomes the system's main nginx. It replaces whatever was installed via "dnf install nginx". Yes?  Hope this makes sense. Have I correctly understood how nginx compilation works? Appreciate any pointers.   Thank you.    

	_______________________________________________ nginx mailing list nginx at (mailto:nginx at (
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx mailing list