LAMP atau LEMP? Stack Apa Yang Kamu Pilih?

Pilih LAMP atau LEMP
Anda mungkin sering mendengar tentang LAMP dan LEMP ketika berbicara tentang konfigurasi sebuah web server, dan kitapun sering bertanya-tanya sebenarnya apa perbedaan di antara keduanya. Sebenarnya perbedaan yang paling signifikan adalah pada perangkat lunak web server yang digunakan.
Bagikan Artikel Ini
Share on facebook
Share on twitter
Share on pinterest
Share on whatsapp
Share on email
Share on telegram

Daftar Isi Artikel

Ketika kita mengembangkan sebuah aplikasi berbasis website, kita memerlukan suatu aplikasi dan infrastrukstur yang berjalan di sisi server dan melakukan pengelolaan aplikasi website yang kita kembangkan. Server pada dasarnya adalah sebuah komputer yang mempunyai fungsi untuk menyajikan beberapa file ketika ada permintaan melalui internet. Seperti yang kita ketahui, bahwa setiap komputer pasti memiliki sistem operasi seperti Windows, Linux dan lain sebagainya, begitu juga dengan server yang juga memiliki sistem operasi.

Selain sistem operasi, sebuah web server juga memiliki perangkat lunak. Pada perangkat lunak yang tersedia di server memiliki tugas yang berbeda-beda, ada yang berfungsi untuk mengelola server, database, bahasa pemrograman dan lain-lain. Jika masing-masing perangkat lunak yang mempunyai fungsi berbeda-beda tersebut digabungkan menjadi satu konfigurasi server yang lengkap, inilah yang disebut dengan stack.

Kali ini kita akan bahas mengenai dua stack yang populer digunakan dalam konfigurasi web server, yaitu LAMP dan LEMP.

Perbedaan LAMP dan LEMP

Anda mungkin sering mendengar tentang LAMP dan LEMP ketika berbicara tentang konfigurasi sebuah web server, dan kitapun sering bertanya-tanya sebenarnya apa perbedaan di antara keduanya. Sebenarnya perbedaan yang paling signifikan adalah pada perangkat lunak web server yang digunakan. Pada stack LAMP, web server yang digunakan adalah Apache, sedangkan pada stack LEMP, web server yang digunakan adalah Nginx. Selanjutnya kita akan bahas secara detail mengenai masing-masing stack.

LAMP

LAMP adalah singkatan dari Linux, Apache, MySQL dan PHP. Ini adalah kombinasi dari komponen-komponen yang membentuk stack web server. LAMP menjadi stack yang sangat populer selama beberapa waktu. Komponen yang membentuk LAMP ini bersifat open-source dengan dukungan komunitas yang sangat besar. LAMP telah ada sejak periode awal adanya aplikasi berbasis web.

istilah LAMP diciptakan oleh Michael Kunze di sebuah majalah Jerman pada tahun 1998. Seperti yang sudah disebutkan di awal, LAMP terdiri dari empat lapisan yang terdiri dari:

  • Linux, sebuah sistem operasi yang bersifat terbuka dan gratis. Linux mempunyai komunitas yang sangat kuat dan berkembang hingga saat ini.
  • Apache HTTP Server adalah perangkat lunak untuk web server yang bersifa terbuka. Dibuat pertama kali pada tahun 1995.
  • MySQL adalah sistem manajemen basis data relasional yang digunakan untuk menyimpan data. Bersifat terbuka dan bekerja dengan bahasa SQL.
  • PHP adalah bahasa scripting untuk membangun halaman web yang bersifat dinamis.

Arsitektur LAMP sendiri berlapis mulai dari Linux pada bagian bawah, kemudian diikuti oleh Apache, MySQL kemudian PHP.

Cara kerja dari LAMP dimulai ketika browse mengirimkan permintaan untuk halaman web ke web server Apache. Jika permintaan tersebut dalam bentuk file PHP, maka permintaan tersebut akan diteruskan ke PHP dan kemudian kodenya dijalankan. Jika ada informasi yang berkaitan dengan data, maka selanjutnya meminta MySQL untuk mengambil informasi apapun yang diminta oleh kode tersebut. Kemudian kode dan data tersebut diolah dan ditampilkan ke browser untuk menampilkan halaman web.

LAMP juga bersifat fleksibel. Misalnya pada Apache yang memiliki desain secara modular, dengan hal ini memungkinkan untuk menambahkan modul khusus untuk memperluas fungsionalitasnya.

LEMP

Selanjutnya kita akan bahas mengenai LEMP. Stack ini mempunyai fungsi yang sama dengan LAMP, hanya pembedanya pada web server yang digunakan. Jika pada LAMP menggunakan Apache, maka pada LEMP menggunakan Nginx. LEMP sendiri mengacu pada singkatan dari Linux, Nginx, MySQL. LEMP menawarkan pengelolaan web yang ringan dan kuat.

Yang menarik adalah penggunaan huruf E yang mewakili Nginx, daripada memakai huruf N. Alasan yang terkuat adalah karena dari pembacaan, Nginx terbaca dengan huruf E di depan kata-nya.

Karena yang menjadi pembeda antara LAMP dan LEMP ini terletak pada Nginx yang dipakai, mari kita ulas secara singkat apa itu Nginx. Nginx adalah web server yang berjalan di sistem operasi Linux. Nginx merupakan perangkat lunak untuk server yang sangat optimal, ringan dan cepat. Bersifat terbuka dan sudah mendukung berbagai protokol seperti HTTP, HTTPS, SMTP, POP3 dan IMAP. Nginx juga dapat berfungsi sebagai penyeimbang beban dan cache HTTP. NginX berfokus pada implementasi konkurensi yang tinggi, kinerja yang tinggi namun penggunaan memori yang rendah.

Perbedaan Apache dan NGINX

Karena yang menjadi pembeda utama antara stack LAMP dan LEMP adalah penggunaan Apache dan Nginx, kita akan ulas lebih detail lagi pembeda antara keduanya.

Apache

Apache server diciptakan oleh Robert McCool pada tahun 1995, selanjutnya proyek Apache dikembangkan dan dikelola oleh Apache Softwa Foundation semenjak tahun 1999. Apache seringkali dipilih oleh web administrator karena fleksibilitas, kekuatan dan dukungannya yang luas. Apache juga dapat dikembangkan dengan sistem modular.

Beberapa fakta menarik tentang Apache antara lain:

  • Apache Software Foundation sebagai pengelola merek dan pengembang layanannya.
  • Apache dikembangkan dan dikelola oleh komunitas pengembang terbuka di bawah pengelolaan Apache Software Foundation.
  • Apache sebagian besar berjalan di sistem operasi Linux. Saat ini Apache telah mengelola sekitar 46% dari semua situs web di seluruh dunia.
Cara Apache MPM menangani permintaan dari klien

Apache memiliki metodologi dalam pemrosesan permintaan melalui tiga modul yang disebut sebagai Multi-Processing Modules (MPM). Ketiga modul tersebut antara lain:

  • MPM Prefork
    Modul pemrosesan ini akan memunculkan suatu proses dengan beberapa single thread untuk menangani masing-masing permintaan. Setiap single thread akan menangani satu koneksi pada satu waktu. Jika permintaan dari lebih jumlah proses, maka MPM Prefork akan cepat. Namun jika permintaan melampaui jumlah proses maka kinerja akan menurun. Setiap proses yang terjadi akan berdampak pada konsumsi RAM. Pilihan ini direkomendasikan untuk bekerja dengan komponen yang masih belum mendukung penggunaan threads, misalnya PHP. MPM ini menjadi pilihan untuk bekerja dengan mod_php, modul dari Apache akan memproses file-file ini.
  • MPM Worker
    Modul ini akan memunculkan proses yang masing-masing dapat mengelola beberapa thread. Masing-masing thread dapat menangani satu koneksi. Thread ini akan jauh lebih efisien daripada MPM Prefork. Karena ada lebih banya thread daripada proses, ini berarti bahwa setiap koneksi baru dapat langsung menggunakan thread tanpa harus menunggu lagi.
  • MPM Event
    Modul ini mirip dengan modul worker, tetapi dioptimalkan untuk menangani koneksi tetap aktif. Saat menggunakan MPM Worker, koneksi akan menahan thread terlepas. MPM Event akan menangani koneksi tetap terhubung dengan mengirimkan permintaan aktif ke thread lainnya. Ini menjaga agak eksekusi bisa menjadi lebih cepat.

Fitur lain yang menarik dari Apache adalah Keep-alive.Apache keep-alive digunakan untuk mengontrol bagaimana koneksi dilakukan pada web server anda. Ketika seorang pengguna mengunjungi web anda, maka dapat terjadi banyak koneksi yang tersambung dalam satu sesi. Jika hal ini terjadi maka server anda dapat meresponse semakin lambat.

Untuk menghindari masalah ini, Apache memiliki fitur yang disebut Keep-alive yang memungkinkan web anda menyajikan file yang berbeda tanpa membuat koneksi baru. Keep-Alive adalah salah satu fitur yang paling berguna untuk mengoptimalkan kecepatan website. Dengan koneksi yang banyak memang dapat mengurangi waktu pemuatan halaman wesbite, namun ini juga memerlukan banyak sumber daya server. Fitur Keep-Alive inilah yang menjadi jawaban untuk menghindari kebutuhan untuk berulang kali membuka dan menutup koneks baru. Jika Keep-Alive tidak diaktifkan, prosesnya bisa memakan waktu lebih lama untuk menampilkan halaman web.

Membuat banyak koneksi dapat mengurangi waktu pemuatan. Ini juga menggunakan banyak sumber daya di server. Kami akhirnya dapat mengatasi masalah ini dan mentransfer semua file melalui satu koneksi dengan mengaktifkan Keep-Alive, yang menghindari kebutuhan untuk berulang kali membuka dan menutup koneksi baru. Jika tidak diaktifkan, prosesnya bisa memakan waktu lebih lama untuk menampilkan halaman web.

NGINX

Nginx yang diucapkan “engine-ex” adalah sebuah perangkat lunak web server yang bersifat terbuka. Pada awal rilis disebutkan sebagai perangkat lunak yang berfungsi untuk melayani HTTP Web. namun hari ini Nginx juga berfungsi sebagai proxy, load-balance dan proxy email untuk protokol IMAP, POP3 dan SMTP.

Nginx dirilis secara resmi pada oktober 2004. Diciptakan oleh Igor Syoev, dan memulai proyeknya pada tahun 2002 untuk menjawab masalah C10k. C10k adalah sebuah tantangan untuk mengelola sepuluh ribu koneksi pada saat bersamaan. Saat ini ada lebih banyak lagi koneksi yang harus ditangani oleh web server, sehingga Nginx menawarkan arsiteksur event-driver dan asyncrhonous. Fitur ini menjadikan Nginx sebagai salah satu server yang handal dari sisi kecepatan dan skalabilitas. Karena kemampuannya yang luar bisa untuk menangani banyak koneksi, sudah banyak situs dengan lalu lintas yang tinggi telah menggunakan Nginx.

Cara Kerja Nginx

cara kerja nginx

Ketikan ada permintaan untuk membuka halaman web, browser akan menghubungi server web tersebut, kemudian server akan mencari file yang diminta untuk halaman tersebut dan mengirimkannya ke browser. Ini adalah contoh permintaan yang sederhana.

Contoh tersebut dapat dapat dianggap sebagai single thread. Web server tradisional akan membuat single thread untuk setiap permintaan. Nginx tidak bekerja seperti itu. Nginx bekerja dengan arsitektur asynchronous yang digerakkan oleh suatu peristiwa. Setiap thread akan dikelola oleh satu process worker, dan setiap wroker akan berisi unit yang lebih kecil yang disebut sebagai worker connections. Seluruh unit akan bertanggung jawab menangani thread request. Worker Connections akan mengirimkan permintaan ke worker process dan worker process akan meneruskan permintaan tersebut kepada master process dan master process akan memberikan hasil dari permintaan tersebut.

Dengan arsitektur seperti itu, Nginx dapat memproses ribuan permintaan tanpa kesulitan, Hal ini juga menjadi alasan mengapa Nginx menjadi pilihan untuk web dengan traffict tinggi seperti e-commerce.

Baca Juga: Apa Itu NGINX? Mengenal Lebih Dekat Dengan NGINX!

Perbandingan Singkat Apache dan Nginx

Kita sudah mengulas masing-masing web server. Selanjutnya mari kita simak perbandingan singkat antara Apache dan Nginx

  • Dukungan Sistem Operasi
    Kompabilitas adalah salah satu detail ketika memilih perangkat lunak. Baik Apache dan Nginx dapat berjalan di banyak sistem operasi yang mendukung sistem Unix. Sayangnya kinerja Nginx di sistem operasi Windows tidak sebagus daripada di platform lain.
  • Dukungan Pengguna
    Apache dan Nginx masing-masing memiliki komunitas yang luas dan dapat membantu ketika menghadapi masalah,
  • Kinerja
    Nginx dapat digunakan secara bersamaan untuk menjalankan 1000 koneksi konten statis secara bersamaan dengan menggunakan sedikit memori dan ini dua kali lebih cepat daripada Apache. Namun jika dibandingkan dengan kinerja ketika menjalankan konten dinamis, keduanya memiliki kecepatan yang sama.

Kesimpulan

Baik Apache dan Nginx adalah server web yang kuat. Kegunaan mereka tergantung pada kebutuhan Anda. Jika Anda mencari server yang cepat dan ringan, Anda harus menggunakan NGINX. Jika Anda ingin lebih banyak modul aplikasi dan lebih banyak fitur, Anda bisa menggunakan Apache. Nah, bagaimana dengan pilihan Anda, Apache, NGINX atau mungkin Litespeed? Masukan pilihan dalam poll dibawah ini yah. Terima kasih.

Kamu Suka Artikel Ini? Bagikan Ke Temanmu dan Yang Lain!
Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp
Share on telegram
Telegram
Share on email
Email
Artikel Lainnya Yang Patut Anda Ketahui
install plugin
Tutorial
Cara Install Plugin WordPress

Sebelum kita memulai tutorial install plugin wordpress, perlu kami ingatkan jika paduan cara install plugin wordpress ini hanya berlaku untuk wordpress self-hosted (wordpress.org) dan tidak bisa di aplikasi pada wordpress.com, kecuali anda mengunakan plan bisnis.

tutorial backup wordpress
Tutorial
Paduan Lengkap Cara Backup WordPress

Tentunya hampir semua pemilik website ataupun blog memiliki ketakutan sendiri jika hasil kerja keras selama berbulan-bulan, bahkan bisa bertahun-tahun hilang begitu saja karena ulah peretas nakal, kena virus maupun keteledoran yang tidak sengaja, seperti menghapus file penting. Sebelum hal tersebut terjadi pada anda, ada baiknya anda menyimak artikel tutorial singkat mengenai “Paduan cara backup Wordpress” baik menggunakan plugins atau tanpa plugins.

Tidak Ingin Ketinggalan Artikel, Tips dan Tutorial Wordpress Terbaru?
Masukkan Email Anda Agar Selalu Update tentang Info Terbaru seputar wordpress.
customer-care-support