Install Nginx Di Ubuntu/Debian Server

Posted by

Nginx (baca: Engine X) merupakan salah satu web server, atau mungkin lebih tepat kalau disebut http server, yang cukup populer.

Bersaing diantara Apache, Microsoft IIS, maupun beberapa web server besar lainnya, Nginx diyakini memiliki performa yang lebih dibandingkan competitor lainnya.

Masalah performance mungkin banyak dari kita yang memiliki opini pribadi yang menentukan pemilihan web server yang digunakan.

Makanya saya selalu berpendapat, performance is always determined by the man behind it.

Kenapa anda ingin melakukan instalasi Nginx?

Mungkin anda memiliki berbagai alasan yang melatarbelakangi, namun sebagian besar pasti karena alasan akan / sedang beralih dari shared hosting ke private hosting atau karena sedang berada di backend environment.

Jika anda masih bingung memilih antara Apache atau Nginx maka anda bisa melihat perbedaan antara Apache dan Nginx yang saya buat khusus untuk anda.

nginx-ubuntu-debian

Mainline vs Stable

Ada dua versi nginx open source yang akan kita pilih, yaitu versi mainline dan stable.

  • Mainline
    Ibarat kata “pasukan baris depan yang terlatih” mungkin bisa sedikit menggambarkan nginx versi mainline. Dengan masih berstatus “pengembangan dan percobaan”, bukan berarti nginx versi mainline ini rentan. Bahkan bisa dibilang selama saya menggunakan, nginx versi mainline ini cukup stabil. Kelebihan dari versi mainline, kita akan selalu bisa merasakan fitur-fitur terbaru dan versi yang up to date. Kekurangannya, possibility adanya bugs lebih besar jika dibandingkan dengan versi stable.
  • Stable
    Merupakan versi stabil dari nginx, yang mana semua fitur dan security sudah di uji coba dengan serangkaian tes. Kelebihan nginx versi stable, kita akan memiliki web server yang stabil dan handal karena sudah teruji coba dan proven, dengan possibility bugs yang sangat kecil, sehingga sangat sesuai untuk digunakan sebagai web server ecommerce. Tapi kekurangannya, kita tidak bisa mengimplementasi fitur-fitur terbaru dari nginx.

Memilih Jenis Instalasi Nginx

Bagi anda yang pernah menginstal nginx mungkin sudah paham dengan pilihan instalasi nginx.

Tapi jika anda baru mengenal nginx, mungkin anda perlu memahami pilihan instalasi nginx yang akan dilakukan biar sesuai dengan tujuan.

  • Install nginx dari prebuilt package Debian/Ubuntu

Install nginx dari prebuilt package bawaan OS (Debian/Ubuntu), baik itu instalasi core engine maupun module, cenderung sangat mudah.

Bukan cuma proses instalasi, proses update nginx serta module yang terinstall pun sangat mudah karena bersifat otomatis.

Tapi dengan semua kemudahan yang tersedia, kita terlimitasi oleh package yang di built oleh Debian / Ubuntu, yang mana terdiri dari nginx versi stable dan hanya beberapa pilihan module.

  • Install nginx dari prebuilt package Nginx Repository

Install nginx dari Nginx repository package bisa dibilang sama mudahnya dengan instal Nginx dari bawaan OS, bahkan disini kita bisa memilih apakah mau menggunakan versi stable atau versi mainline.

Selain itu, kita bisa lebih fleksibel dalam pemilihan dynamic module yang akan kita gunakan. Dynamic module yah sob, bukan yang static module.

Tapi tenang saja, beberapa static module bisa di convert ke dynamic module, walaupun tidak semuanya.

Untuk proses update core nginx terbilang cukup mudah, tapi untuk melakukan update module sedikit tricky, karena proses update module yang terinstal harus dilakukan secara manual.

  • Install Nginx dari Source

Jika anda mau fleksibilitas lebih, maka instalasi Nginx dari source menjadi pilihan. Semua modul bisa anda gunakan sesuai kebutuhan, bahkan code nginx core pun bisa anda modifikasi.

Dengan fleksibilitas yang seolah tanpa batas inilah yang membuat proses instalasi Nginx paling rumit diantara kedua opsi di atas. Proses update pun tergolong rumit karena harus dilakukan secara manual.

A.  Install Nginx Dari Prebuilt Package Debian / Ubuntu

Untuk menginstall Nginx dari prebuilt package bawaan Debian/Ubuntu, maka anda cukup melakukan eksekusi command sebagai berikut.

Nginx Core

Jika anda ingin menginstall Nginx saja, maka cukup ketik command berikut ini.

sudo apt-get update 
sudo apt-get install nginx

Nginx Core + Nginx Module (Bawaan OS)

sudo apt-get update
sudo apt-get install nginx 
sudo apt-get install nginx-extras

Adapun list module bisa dilihat di web ubuntu / debian untuk build package nya.

Nginx Core + Selected Module

Jika saya ingin menginstall Nginx + general module maka perintah berikut bisa digunakan :

sudo apt-get update 
sudo apt-get install nginx-full

Kembali lagi, anda bisa mengecek terlebih dahulu ke web ubuntu atau debian untuk melihat module apa saja yang di build dalam Nginx Full.

B.  Install Nginx Dari Prebuilt Package Nginx Repository

Stable

Pertama kita perlu menambahkan signing key berikut untuk memastikan kalau repository dan packages Nginx terdaftar dalam package manager (apt) keyring.

wget http://nginx.org/keys/nginx_signing.key 
sudo apt-key add nginx_signing.key

Setelah itu kita tambahkan repository Nginx agar nantinya saat kita melakukan instalasi Nginx, maka sorce yang terbaca berasal dari repository Nginx, bukan dari package bawaan Ubuntu atau Debian.

Untuk melakukan hal tersebut maka kita perlu mendefinisikan / menambahkan repository Nginx di file sources.list package.

Pertama kita buka dulu file sources.list dengan fie editor, di sini saya memakai nano sebagai file editor.

$ sudo nano /etc/apt/sources.list

File sources.list secara general akan terlihat seperti berikut

nginx-ubuntu-debian

Setelah file terbuka maka tambahkan repository Nginx pada baris paling bawah dengan general pattern seperti berikut


deb http://nginx.org/packages/{OS Linux}/ {codename} nginx
 
deb-src http://nginx.org/packages/{OS Linux}/ {codename} nginx
 

dimana :

{OS Linux} :  Ubuntu atau Debian

{codename} :  Nama dari versi OS Ubuntu atau Debian yang kita gunakan

Codename bisa dilihat pada tabel berikut :

OPERATING SYSTEM (OS) CODENAME
  Debian 8.x jessie
 Debian 9.x stretch
 Ubuntu 14.04 trusty
 Ubuntu 16.04 xenial
 Ubuntu 17.10 artful
 Ubuntu 18.04 bionic

Maka kode kita di atas menjadi


 ## Debian 9 ##
 deb http://nginx.org/packages/debian/ stretch nginx
 deb-src http://nginx.org/packages/debian/ stretch nginx
 
 ## Ubuntu 18.04 ##
 deb http://nginx.org/packages/ubuntu/ bionic nginx
 deb-src http://nginx.org/packages/ubuntu/ bionic nginx
 

Lalu jangan lupa untuk save dengan cara ctrl+x → Y → Enter.

Setelah itu kita bisa melakukan instalasi Nginx dengan cara biasa.

sudo apt-get update
sudo apt-get install nginx

Dan Nginx web server versi stable akan terinstall ke dalam system.

Mainline

Secara garis besar cara menginstal Nginx mainline hampir sama dengan cara menginstal Nginx stable.

Langkah pertama yang kita lakukan adalah menambahkan signing key berikut untuk memastikan kalau repository dan packages Nginx terdaftar dalam package manager (apt) keyring.

wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

Setelah itu, kita perlu mendefinisikan / menambahkan repository Nginx di file sources.list package menggunakan file editor favorit anda, di sini saya memakai nano.

sudo nano /etc/apt/sources.list

Di sinilah perbedaan antara instalasi Nginx versi stable dan mainline, yaitu repository Nginx yang digunakan.

Secara general, pattern untuk menambahkan repository Nginx mainline adalah sebagai berikut


 deb http://nginx.org/packages/mainline/{OS Linux}/ {codename} nginx
 deb-src http://nginx.org/packages/mainline/{OS Linux}/ {codename} nginx 
 

Sehingga dengan menggunakan tabel codename ini maka kita akan memasukkan kode berikut di file sources.list sesuai dengan OS Linux yang kita gunakan.


 ## Untuk OS Debian 9 ##
 deb http://nginx.org/packages/mainline/debian/ stretch nginx
 deb-src http://nginx.org/packages/mainline/debian/ stretch nginx
 
 ## Untuk OS Ubuntu 18.04 ##
 deb http://nginx.org/packages/mainline/ubuntu/ bionic nginx
 deb-src http://nginx.org/packages/mainline/ubuntu/ bionic nginx 
 

Lalu jangan lupa untuk save dengan cara ctrl+x → Y → Enter.

Setelah itu kita bisa melakukan instalasi Nginx dengan cara biasa.

sudo apt-get update
sudo apt-get install nginx

Dan Nginx web server versi mainline akan terinstall ke dalam system.

C.  Install Nginx Dari Source Compiling

Saran dari saya, sebisa mungkin hindari compiling Nginx dari source, apalagi untuk production server.

Karena banyak step – step yang harus dilakukan secara manual, baik untuk instalasi, update, upgrade, uninstall, dependency management, dan lain sebagainya, sehingga kalau luput sedikit, things could get messy a little quicky.

Terkadang keinginan untuk melakukan instalasi Nginx dari Source Compiling dikarenakan kita ingin menambahkan satu atau beberapa modul ke dalam system Nginx.

Saya pernah di posisi itu, gara – gara ingin menambahkan modul brotli, berakhir dengan tidak bisa connect SSH ke server.

Glad News, pada Nginx versi 1.9 ke atas, dynamic module sudah bisa di pakai.

Dan saat ini dimana Nginx versi stable ada di versi 1.13.x dan versi mainline ada di versi 1.14.x penambahan module seperti brotli sudah sangat mudah untuk di implementasikan.

Leave a Reply

Your email address will not be published. Required fields are marked *