top of page

Installing Nginx from Source on a Linux System (RHEL9/Rocky9)


Installing Nginx from Source on a Linux System

In this blog, I'll guide you through installing Nginx from source on a Linux system. We'll walk through each step, from installing the necessary development tools to configuring and installing Nginx. Let's get started!


Step 1: Install Development Tools

First, you'll need to install a group of development tools required for building software from source. This includes compilers, libraries, and other utilities.

[root@siddhesh ~]# dnf groupinstall "Development Tools"

Step 2: Install Required Libraries

Next, we need to install the pcre library, which is essential for Nginx to support regular expressions, as well as the perl and perl-core packages, which are needed for certain build tasks.

[root@siddhesh ~]# dnf install pcre pcre-devel -y
[root@siddhesh ~]# dnf install perl perl-core -y

Step 3: Download Nginx, OpenSSL, and zlib Source Files

Now, navigate to the /usr/local/src directory, where we'll download the source files for Nginx, OpenSSL, and zlib.

[root@siddhesh ~]# cd /usr/local/src
[root@siddhesh src]#

Download the source files using the following commands:

[root@siddhesh src]# wget http://nginx.org/download/nginx-1.25.0.tar.gz
[root@siddhesh src]# wget http://zlib.net/zlib-1.3.1.tar.gz
[root@siddhesh src]# wget https://github.com/openssl/openssl/releases/download/openssl-3.0.14/openssl-3.0.14.tar.gz

Step 4: Extract the Downloaded Files

After downloading, extract each of the tarball files.

[root@siddhesh src]# tar -zxvf nginx-1.25.0.tar.gz
[root@siddhesh src]# tar -zxvf openssl-3.0.14.tar.gz
[root@siddhesh src]# tar -zxvf zlib-1.3.1.tar.gz

Step 5: Configure Nginx with Required Modules

Navigate to the Nginx source directory and configure the build. Here, we're specifying various paths and enabling important modules such as SSL, HTTP/2, and gzip.

[root@siddhesh src]# cd nginx-1.25.0
[root@siddhesh nginx-1.25.0]#

Run the configure script with the desired options:

[root@siddhesh nginx-1.25.0]# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-zlib=/usr/local/src/zlib-1.3.1 --with-openssl=/usr/local/src/openssl-3.0.14

Step 6: Build and Install Nginx

Now, it's time to compile the source code and install Nginx. This may take a few minutes.

[root@siddhesh nginx-1.25.0]# make
[root@siddhesh nginx-1.25.0]# make install

Step 7: Create Nginx Systemd Service File To manage Nginx as a service, create a systemd service file. Here's a sample configuration:

[root@siddhesh ~]# cat /usr/lib/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target
[Service]
Type=forking
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PIDFile=/var/run/nginx.pid
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@siddhesh ~]#

Step 8: Reload Systemd and Start Nginx

After creating the service file, reload the systemd daemon, enable Nginx to start at boot, and then start the Nginx service.

[root@siddhesh ~]# systemctl daemon-reload
[root@siddhesh ~]# systemctl enable nginx
[root@siddhesh ~]# systemctl restart nginx

Step 9: Verify the Nginx Installation

Finally, check the installed Nginx version to ensure everything is set up correctly.

[root@siddhesh ~]# nginx -v
nginx version: nginx/1.25.0
[root@siddhesh ~]# 

Conclusion

You've successfully installed Nginx from source on your Linux system! By compiling Nginx with OpenSSL and zlib, you've enabled powerful features like SSL/TLS and gzip compression. You can now start configuring your Nginx server according to your needs.


Komentarji

Ocena 0 od 5 zvezdic.
Ni še ocen

Dodaj oceno
bottom of page