LAMP atau LEMP, Manakah yang Lebih Baik?

LAMP atau LEMP, Manakah yang Lebih Baik?

LEMP (Linux, Nginx, MySQL dan PHP) atau LAMP (Linux, Apache, MySQL dan PHP) adalah contoh Stack yang paling sering digunakan oleh sysadmin maupun developer untuk mengelola websitenya. Selain karena sama-sama open source dan yang membedakannya hanya web server saja.

LEMP menggunakan web server Nginx dan LAMP menggunakan web server Apache. Kedua Stack ini mana yang yang lebih baik?

Web server Apache sudah terbilang cukup lama yaitu tahun 1995. Sedangkan Nginx tahun 2005. Sehingga kalau berbicara mengenai teknologi serta fitur kedua web server tersebut tentu berbeda.

Baca juga: Cara Install LAMP pada CentOS 7

Web Server Apache

Apache bekerja dengan baik jika menggunakan konten-konten dinamis. Apache juga mengandalkan konsep based on process, versi Apache yang terbaru yaitu Apache 2 memperkenalkan Multi-Processing Module (MPM), fungsi dari MPM ini bisa merubah Apache listen ke network, accept maupun handle request. Ada 3 macam MPM yang digunakan untuk mengatasi request yang masuk dan memproses request tersebut.

Prefork MPM

Prefefork MPM meluncurkan multiple child process. Setiap child process ini menangani satu koneksi pada satu waktu.

MPM ini menggunakan memory yang besar dan juga default MPM yang digunakan Apache2.

Worker MPM

Worker MPM melakukan generate multiple child process serupa dengan Prefork. Setiap child process menjalankan banyak thread. Setiap thread menangani satu koneksi pada satu waktu.

Event MPM

Event MPM dikenalkan Apache versi 2.4. Cara kerjanya sama dengan Worker MPM, namun ini di desain untuk mengelola load yang tinggi.

MPM ini mengizinkan request lebih yang harus dilayani secara bersamaan dengan melewati beberapa proses untuk mendukung threads. Dengan menggunakan MPM Apache ini mencoba memperbaiki masalah ‘Keep-Alive’.

Baca juga: Cara Konfigurasi Virtual Host di Nginx

Sedikit penjelasan mengenai apa itu Keep-Alive, keep-alive ini membuat koneksi ganda untuk menurunkan loading time. Benefitnya:

  • Reduce CPU Usage
    Membuat koneksi TCP baru membutuhkan banyak resource seperti CPU dan Memory Usage. Menjaga koneksi tetap hidup lebih lama (keep-alive) dapat menurunkan penggunaa resource yang berlebihan.
  • Web page Speed
    Kemampuan untuk menangani mulitlple file dengan menggunakan koneksi yang sama dapat menurunkan latency dan mengizinkan web pages untuk mempercepat load time.
  • HTTPS.
    HTTPS adalah koneksi yang lebih aman dari HTTP, karena menggunakan Secure Socket Layer (SSL). SSL ini adalah salah satu resource yang intensif. Sehingga direkomendasikan dengan mengaktifkan Keep-Alive untuk HTTPS connetions.

Web Server Nginx

Nginx bekerja dengan baik jika menggunakan konten statis. Nginx mengenalkan arsitektur asynchronous, events-driven architecture. Juga mengandalkan konsep based on event.

Penggunaan desain non-synchronized atau asynchronous ini dapat menerima high loads. Nginx cocok digunakan untuk menjalankan satu worker process untuk setiap CPU. Sehingga dapat memaksimalkan efesiensi dari sebuah hardware.

Teknologi Nginx juga support FastCGI dan CSGI handler untuk melayani script konten dinamis seperti PHP dan Python. Stacknya menggunakan LEMP.

Baca juga: Cara Instal HHVM dan Nginx di Linux VPS

Perbedaan Apache dan Nginx

Banyak perbedaan yang harus Anda ketahui antara kedua web server ini, berikut penjelasannya:

Konsep

Apache mengadalkan konsep based on process. Maksudnya adalah membuat proses dan pekerjaan hanya jika ada request. Sedangkan Nginx mengandalkan konsep based on event. Maksudnya adalah Nginx tidak akan memproses suatu pekerjaan meskipun ada request baru. Jadi, Nginx merupakan web server yang bekerja multi-tasking.

Performance

Static Content – Nginx lebih cepat 2.5 dibandingkan dengan Apache.

Dynamic Content – Keduanya saat ini hampir mirip, karena Apache dan Nginx sama-sama support PHP-FPM, juga dengan Varnish atau Memcached Cache.

OS Support

Apache bekerja dengan banyak varian Unix system (seperti Linux atau BSD) dan support penuh Microsoft Windows. Sedangkan Nginx pada Windows hanya sedikit.

Security

Apache menawarkan tips konfigurasi menangani DDoS Attack termasuk dengan Mod Evasive, module yang berurusan dengan HTTP DoS, DDoS atau Brute Force Attack. Sedangkan Nginx menawarkan untuk dapat melakukan limitasi pada jumlah request dan jumlah koneksi pada konfigurasi Nginx.

Shared Hosting biasanya menggunakan Apache karena bisa menangani banyak modul dinamis. Sedangkan Nginx sangat populer untuk VPS Hosting, Dedicated Hosting atau Cluster Container.

Baca juga: Cara Konfigurasi Virtual Host di Apache

Kesimpulan

Jadi, siapa yang lebih baik Apache atau Nginx? Sesuai dengan kebutuhan kamu, kalau kamu ingin menampilkan konten dinamis maka bisa pilih Apache. Atau sebaliknya, konten statis bisa pilih Nginx.

Kamu juga perlu mencoba Install LEMP dan juga Install LAMP untuk dapat membandingkannya.

Demikian artikel ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb. Semoga artikel ini membantu!