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