Nginx merupakan salah satu web server paling populer di dunia, dikenal karena performanya yang ringan, stabil, dan kemampuannya menangani traffic dalam jumlah besar. Secara umum, Nginx tersedia di berbagai distro Linux melalui package manager seperti apt atau yum. Namun, dalam beberapa kasus, kita mungkin perlu melakukan kompilasi manual untuk menyesuaikan modul, optimasi, atau menggunakan versi terbaru yang belum tersedia di repositori resmi.

Pada artikel ini akan membahas langkah-langkah kompilasi dan instalasi Nginx dari source code, mulai dari persiapan dependensi hingga konfigurasi dasar sebelum dijalankan.

A. Persiapan dan Instalasi Dependensi

Sebelum mulai proses kompilasi, kita perlu memastikan beberapa paket pendukung telah terinstall di server.
Jalankan perintah berikut untuk memperbarui sistem dan meng-install paket compiler:

apt-get update -y
apt-get upgrade -y
apt-get install build-essential -y

Selanjutnya, kita akan meng-install library-library yang dibutuhkan secara manual, karena akan di-link saat proses kompilasi.

  • Install PCRE2

Library PCRE digunakan untuk proses regular expression di Nginx.

wget https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.43/pcre2-10.43.tar.gz
tar -zxf pcre2-10.43.tar.gz
cd pcre2-10.43
./configure
make
sudo make install
  • Install zlib

Library zlib digunakan untuk kompresi HTTP.

wget http://zlib.net/zlib-1.3.1.tar.gz
tar -zxf zlib-1.3.1.tar.gz
cd zlib-1.3.1
./configure
make
sudo make install
  • Install OpenSSL

OpenSSL diperlukan jika ingin menggunakan HTTPS di Nginx.

wget https://www.openssl.org/source/openssl-3.0.13.tar.gz
tar -zxf openssl-3.0.13.tar.gz
cd openssl-3.0.13
./Configure linux-x86_64 --prefix=/usr
make
sudo make install

B. Download dan Compile Nginx

Setelah semua dependensi ter-install, kita lanjut ke proses download dan kompilasi Nginx.

  • Download Source Code Nginx
wget https://nginx.org/download/nginx-1.26.3.tar.gz
tar -zxf nginx-1.26.3.tar.gz
cd nginx-1.26.3
  • Konfigurasi Compile Nginx

Gunakan perintah berikut untuk menentukan lokasi instalasi, konfigurasi path, dan modul apa saja yang ingin diaktifkan:

./configure \
--prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--pid-path=/etc/nginx/nginx.pid \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log \
--with-pcre=../pcre2-10.43 \
--with-zlib=../zlib-1.3.1 \
--with-http_ssl_module \
--with-mail_ssl_module \
--with-stream \
--with-mail \
--with-debug

Penjelasan opsi:

--prefix → Lokasi instalasi Nginx

--with-pcre, --with-zlib, --with-http_ssl_module → Modul yang diaktifkan

  • Compile dan Install

Setelah konfigurasi selesai, lanjutkan proses compile dan install:

make
sudo make install

C. Membuat Systemd Service

Agar Nginx bisa dijalankan dengan systemctl, kita perlu membuat file service manual.

Buat file:

vim /etc/systemd/system/nginx.service

Isi dengan:

[Unit]
Description=Custom Nginx Service
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s quit
PIDFile=/etc/nginx/nginx.pid

[Install]
WantedBy=multi-user.target

Sekarang Nginx hasil kompilasi manual sudah berhasil di-install dan berjalan sebagai service di server. Dengan metode ini, kamu bisa menentukan sendiri modul yang ingin diaktifkan, lokasi instalasi, hingga melakukan compile dengan versi library yang kamu butuhkan.

Kapan metode ini sebaiknya digunakan?

  • Saat butuh versi Nginx terbaru sebelum tersedia di repositori
  • Saat butuh Nginx dengan modul khusus
  • Saat ingin melakukan optimasi khusus pada environment server