Taufiksi – Halo cuy, udah mulai pusing tentang devops ? Santai aja, ada saatnya jago kok, nahh kebetulan disini kita akan coba install nginx di vps.
Sebelumnya udah baca cara deploy aplikasi next js belum ? Sebenernya disitu juga ada cara installnya. Yahh itung itung ini artikel tambahan lah karena disitu juga belum dijelasin apa itu nginx dan lain lain kan.
Dan juga pasti nantinya artikel ini akan berguna ketika saya ingin membuat artikel deploy deploy aplikasi stack lain wkwkw, tinggal di link, ehh masuk ke sini kan, jadinya ngga perlu ngejelasin panjang lebar lagi nantinya.
Okelah daripada kelamaan kan, pasti udah ngga sabar sih. Kalo ada yang cuma butuh cara install nginx di vps aja bisa langsung kebawah. Karna mau basa basi dulu wkwkwk.
Jadi nih, awalnya tuh tujuan di ciptakannya nginx adalah sebagai salah satu solusi dari sebuah permasalahan C10k problem. Apa itu ? C10k adalah sebuah masalah yang biasa dihadapi oleh server ketika harus mengelola 10rb connection secara bersamaan.
Dan kabarnya sampai saat ini, jumlah koneksi yang dikelola web server terus bertambah. Oleh karena itu, NGINX menawarkan arsitechture asynchronus dan yang bisa di dasari oleh event.
Adanya arsitechture ini menjadikan NGINX menjadi salah satu server dengan kecepatan dan skalabilitas yang paling baik.
Nah karena speed dan kemampuannya dalam menangani banyak conection, NGINX sudah banyak sekali digunakan oleh website dengan trafic yang tinggi, contohnya seperti google, netflix dan masih banyak lagi.
Cara Kerja NGINX
Yahh sebelum kita ke cara install nginx di vps, mungkin lebih baik untuk kita tau terlebih dahulu cara kerja dari nginx ini kan.
Ketika seseorang nih melakukan request untuk membuka halaman website, maka browser akan menghubungi server website tersebut.
Kemudian server mencari file halaman yang di request oleh seseorang tadi dan mengirimkannya kembali ke browser. Proses ini adalah menunjukan cara kerja dari server untuk sebuah request yang sangat sederhana.
Contoh diatas juga biasa disebut dengan single thread. Web server biasa membuat single thread untuk setiap permintaan, namun tidak bagi nginx.
Seperti yang sudah dijelaskan diatas tadi ya, nginx menjalankan sebuah arsitechture yang event-driven dan asynchronus, kalau programmer javascript pasti ngga asing dengan async wkwk.
Hal itu juga menunjukan bahwa thread yang sama atau serupa dikelola dibawah satu worker process dan setiap worker tersebut terdiri dari unit yang lebih kecil atau biasa disebut dengan worker connection.
Keseluruhan unit ini bertugas untuk menangani request thread. WC mengirimkan request ke worker process yang juga dikirimkan ke master process. Lalu master process menampilkan hasil dari permintaan dari hasil request tersebut.
Jika melihat secara sekilas cara kerja dari nginx terlihat mudah yaa, tapi kita juga harus tau jika satu worker connection saja bisa menangani hingga 1024 permintaan yang sama dan serupa.
Oleh karena itulah, nginx bisa memproses ribuan request tanpa adanya hambatan. Kemampuan ini pula yang membuat nginx menjadi server yang sering digunakan oleh website dengan trafict yang tinggi, sekelas eccomerce dan search engine.
Ada satu lagi nih, ketika menjalankan tugasnya, web server nginx juga mempunyai beberapa fitur yang bisa dimafaatkan untuk mendukung performa web server seperti berikut ini :
- Reverse proxy
- Dukungan IPv6
- Load Balancing
- Websocket
- Bisa menghandle file statis, index dan auto-indexing
- TLS/Sertifikat SSL
Dengan fitur fitur tersebut pastinya membuat developer menjadi nyaman dan mudah untuk urusan devops.
Kelebihan Nginx
Yahhh, saya masih pengin basa basi cuy, nanti dulu ya kalo mau tau cara install nginx di vps bisa langsung aja di bawah, kan ada navigation juga di sidebar jadi gampang wkwk.
Nginx dan vps emang kayaknya adalah perpaduan yang sempurna sih. Nah berikut ini adalah beberapa kelebihan yang bisa kita ambil ketika menggunakan nginx untuk web server kita.
1. Populer
Nginx memang sudah tidak diragukan lagi, saat ini nginx adalah salah satu web server yang sangat populer dan banyak digunakan oleh developer.
Nginx sudah menjadi pedoman untuk solusi pengiriman data website denganh trafict tinggi, bahkan sekelas dropbox, netflix dan lain lain menggunakan nginx.
Mereka aja menggunakan nginx masa kamu engga wkwkw.
2. Nginx Menjadi Alat Multifungsi
Selain bisa dipakai menjadi web server, beberapa fungsi nginx adalah sebagai load balancer, cache konten dan server proxy.
Karena semua konfigurasi centernya pada satu aplikasi, proses pemantauan akan jauh lebih mudah. Hal ini juga meminimalisir jumlah alat yang kita kelola.
3. Nginx Bisa Menggantikan Hardware Load Balancer
Ketika menjalankan fungsi nginx sebagai software load balancer yang open source, nginx memang lebih mudah untuk dikonfigurasi daripada hardware load balancer.
Web server nginx juga didesain untuk arsitechture cloud yang modern. Nginx juga mendukung konfigurasi ulang on the fly dan terintegrasi dengan devops yang modern untuk proses monitoring yang lebih mudah.
4. Dokumentasi Nginx Lengkap
Jika kita masih kosong, tidak tau apa apa tentang nginx, ngga perlu panik karena nginx merupakan web server yang menyediakan berbagai macam tutorial, webinar dan dokumentasi yang lengkap.
Jika kita masih bingung nih dengan nginx, tapi masih ingin menggunakannya kita bahkan bisa menggunakan nginx plus untuk mendapatkan fasilitas customer support.
5. Nginx Akan Terus Berkembang
Nginx adalah sebuah web server yang sampai detik ini terus di kembangkan secara serius. Apalagi beberapa tahun belakangan ini nginx sudah menjadi garda terdepan pengembangan website modern dan sudah mendorong perkembangan teknologi dari http hingga dukungan layanan microservice.
Dengan hal tersebut, seiring dengan perkembangan pengiriman konten website, nginx berencana menambah fitur sehingga tidak ada pengiriman data yang cacat supaya bisa menjalankan fungsi nginx dengan sempurna.
Bahkan sekarang nginx sudah bisa digunakan oleh banyak module module javascript supaya menajdikan website lebih dinamis.
NGINX VS Apache
Ketika kita sudah mengetahui cara kerja dan apa saja kelebihan dari nginx maka saatnya kita membandingkannya dengan apache.
Diantara web server yang makin lama menjamur di internet. Apache adalah salah satu kompetitor terberat nginx. Server tersebut sudah beredar sejak tahun 90an, asiikk kek bukunya siapa ya wkwkw.
Berikut ini adalah beberapa hal yang akan kita bandingkan oleh keduanya.
1. OS Supporting
Kompabilitas adalah salah satu poin yang harus kita pertimbangkan ketika kita memilih sebuah software. Baik itu nginx maupun apache kedua server tersebut bisa dijalankan di berbagai sistem operasi yang mendukung Unix.
Namun sangat disayangkan performa nginx di windows tidak sebagus jika di aktifkan pada os lain seperti contohnya linux, nanti kita juga akan menginstall nginx di vps linux.
2. User Support
User, baik pemula maupun yang sudah berpengalaman, selalu membutuhkan panduan dari komunitas online yang besar dan solid jika mereka menemukan error ataupun masalah lainnya.
Meskipun nginx dan apache ini sama sama dilengkapi dengan mailing support dan forum di stackoverflow, apache tidak mempunyai fitur bantuan yang seharusnya ditawarkan oleh company apache foundation.
3. Performa
Nginx bisa menjalankan 1000 koneksi konten statis diwaktu bersamaan dengan kecepatan dua kali lebih tinggi dibandingkan dengan apache.
Tidak hanya itu nginx juga tidak menggunakan kapasitas memori yang berlebih. Jika membandingkan dua platform ini dari segi performa ketika menjalankan konten yang dinamis, baik nginx maupun apache mempunyai kecepatan yang sama.
Hanya saja untuk website yang cenderung statis nginx adalah juaranya.
Cara Install Nginx di VPS Linux
Yeah, karena saya sudah mulai mengantuk, mari kita selesaikan artikel ini dengan memberitahukan gimana caranya install nginx di vps linux.
Gampang aja sih untuk menginstallnya. Tapi mari kita buat sedikit lebih panjang wkwkw. yahh biar ngga membosankan kita kasih gambar terlebih dahulu ya hahaaaa.

Haha, booom. Mari kita mulai cara install nginx di vps tercinta kita.
1. Persiapkan System
Yaa kamu bisa menggunakan digital ocean, karena memang disana bisa membeli vps hanya seharga 4$, kalau mau nyoba karna penasaran.
Jadi berikut ini adalah beberapa persiapan yang perlu di siapkan, eleh ngomong apa sih. Ya intinya gitu dah. Kalau cara memilihnya bisa liat di artikel deploy next js dah, mager nulis ulang wkwkw.
- OS Ubuntu
- 1 Core
- 2 RAM
- 35 GB Disk Usage
2. Update Repository
Lakukan update package pada ubuntuk server dengan menggunakan perintah sebagai berikut :
$ sudo apt update
3. Install Nginx
Kemudian untuk selanjutnya adalah install nginx, lakukan dengan perintah sebagai berikut :
$ sudo apt install nginx
4. Konfigurasi UFW
Sebenernya, ketika kita sudah install nginx itu, server sudah berjalan, namun karena kita anak baik dan soleh, kita lanjutkan sampai dengan konfigurasi UFW.
Masukan perintah berikut :
$ sudo ufw app list
Maka akan menghasilkan output sebagai berikut :
Output
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
5. Open Port 80
Langkah langkah selanjutnya nanti adalah opsional, mau dilaksanakan atau ngga terserah, tapi sampai disini seharusnya kita sudah bisa open server, masukan saja di browsermu IP yang di kasih oleh penyedia layanan vps.
Namun lebih afdolnya kita masukan perintah ini :
$ sudo ufw allow 'Nginx HTTP'
5. Cek Status UFW
Kemudian untuk memastikan bahwa nginx sudah dijalankan di ubuntu kita bisa melihat statusnya melalui perintah berikut ini :
$ sudo ufw status
Dan saat perintah tersebut di jalankan maka akan menghasilkan tampilan kurang lebih sebagai berikut ini :
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
6. Cek Status Nginx
Langkah langkah ini untuk pengecekan saja sih, dan untuk memastikan bahwa nginx kita sudah berjalan, kita bisa menggunakan perintah ini :
$ systemctl status nginx
Jika semuanya berjalan, maka akan tampil informasi berikut ini:
Output
? nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-02-20 16:08:19 UTC; 3 days ago
Docs: man:nginx(8)
Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
CGroup: /system.slice/nginx.service
??2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
??2380 nginx: worker process
7. Testing
Ketika kita sudah melakukan pengecekan tidak berguna tersebut, maka selanjutnya kita lakukan test pada IP yang sudah dikasih oleh penyedia vps.
Kurang lebih tampilannya seperti ini nantinya:

Penutup
Oke. sudah puas ? sama sih saya juga puas membuat artikel ini. sampai jumpa di artikel berikutnya babai.