Minggu, 13 November 2016

Memahami Perbedaan web server Apache2 dan Enginx

Assalamualaikum wr.wb
hay sobat blogger kali ini saya akan sharing perbedaan antara web server apache2 dan nginx,,,monggo dibaca dulu

=> Pengertian
- Web server Apache 2 adalah yang dapat dijalankan di banyak sistem operasi
(UNIX, BSD, Linux, Microsoft windows dan NOVELL Netware serta platform lainnya) yang berguna untuk melayani dan memfungsikan situs web. Protokol yang digunakan untuk melayani fasilitas web/www ini menggunakan HTTP.
Apache memiliki fitur-fitur canggih seperti pesan kesalahan yang dapat dikonfigur, autentikasi berbasis datadan lain-lain. Apache juga didukung oleh sejumlah antarmuka pengguna berbasis grafik (GUI) yang memungkinkan penanganan server menjadi mudah.

-  WEb server Nginx
 Nginx adalah server HTTP dan Proxy dengan kode sumber terbuka yang bisa juga berfungsi sebagai proxy IMAP/POP3.
 

=> Latar Belakang
pada postingan ini saya melatar belakangi karena adanya proker dan saat sharing mengenai apache2 dan nginx,adanya yang menanyai perbedaan apa saja yang terdapat pada kedua weeb server tersebut.

=> Maksud dan tujuan
 maksud dan tujuan saya ingin memahami perbedaan antara kedua web server tersebut sebelum memulai pekerjaan saya yang berhubungan pada kedua web server tetrsebut

=> Penjelasan
 Di lihat dari segi Koneksi Arsitektur Penanganan

Salah satu perbedaan besar antara Apache dan Nginx adalah cara yang sebenarnya bahwa mereka menangani koneksi dan lalu lintas. Ini memberikan mungkin perbedaan yang paling signifikan dalam cara yang mereka merespon kondisi lalu lintas yang berbeda. 

>Apache
Apache menyediakan berbagai modul multi-processing (Apache panggilan MPMS ini) yang menentukan bagaimana permintaan klien ditangani. Pada dasarnya, ini memungkinkan administrator untuk menukar koneksi penanganan arsitektur dengan mudah. Ini adalah:
  • mpm_prefork: modul pemrosesan ini menumbuhkan proses dengan thread tunggal masing-masing untuk menangani permintaan. Setiap anak dapat menangani koneksi pada satu waktu. Selama jumlah permintaan lebih sedikit dari jumlah proses, MPM ini sangat cepat. Namun, kinerja mendegradasi cepat setelah permintaan melampaui jumlah proses, jadi ini bukan pilihan yang baik di banyak skenario. Setiap proses memiliki dampak yang signifikan terhadap konsumsi RAM, sehingga MPM ini sulit untuk skala efektif. Hal ini mungkin masih menjadi pilihan yang baik meskipun jika digunakan bersama dengan komponen lain yang tidak dibangun dengan benang dalam pikiran. Misalnya, PHP tidak thread-safe, sehingga MPM ini dianjurkan sebagai satu-satunya cara yang aman bekerja dengan mod_php , modul Apache untuk memproses file-file ini.
  • mpm_worker: Modul ini menumbuhkan proses yang masing-masing dapat mengelola beberapa benang. Masing-masing benang ini dapat menangani satu koneksi. Thread jauh lebih efisien daripada proses, yang berarti bahwa MPM ini skala yang lebih baik daripada MPM prefork. Karena ada benang lebih dari proses, ini juga berarti bahwa koneksi baru dapat segera mengambil benang bebas daripada harus menunggu proses bebas.
  • mpm_event: Modul ini mirip dengan modul pekerja dalam kebanyakan situasi, tetapi dioptimalkan untuk menangani koneksi tetap-hidup. Bila menggunakan MPM pekerja, sambungan akan mengadakan benang terlepas dari apakah permintaan secara aktif sedang dibuat selama sambungan tetap hidup. Acara MPM menangani menjaga koneksi hidup dengan menetapkan benang menyisihkan khusus untuk menangani menjaga koneksi hidup dan melewati permintaan aktif off ke benang lain. Hal ini membuat modul dari macet oleh permintaan tetap-hidup, yang memungkinkan untuk eksekusi lebih cepat.
Seperti yang kita lihat, Apache menyediakan arsitektur yang fleksibel untuk memilih koneksi dan penanganan permintaan algoritma yang berbeda. Pilihan yang tersedia terutama fungsi evolusi server dan meningkatnya kebutuhan concurrency sebagai lanskap internet telah berubah.

>nginx

Nginx datang ke tempat kejadian setelah Apache, dengan kesadaran yang lebih besar masalah concurrency yang akan menghadapi situs di skala. Memanfaatkan pengetahuan ini, Nginx dirancang dari bawah ke atas untuk menggunakan asynchronous, non-blocking, algoritma koneksi penanganan-event.
Nginx menumbuhkan proses pekerja, yang masing-masing dapat menangani ribuan koneksi. Proses pekerja mencapai hal ini dengan menerapkan mekanisme perulangan cepat yang terus menerus memeriksa dan memproses peristiwa. Decoupling pekerjaan yang sebenarnya dari koneksi memungkinkan setiap pekerja untuk menyibukkan dirinya dengan koneksi hanya ketika acara baru telah memicu.
Masing-masing dari koneksi ditangani oleh pekerja ditempatkan dalam loop acara di mana mereka ada dengan koneksi lainnya. Dalam loop, peristiwa diproses asynchronously, memungkinkan pekerjaan yang harus ditangani secara non-blocking. Bila sambungan menutup, itu dihapus dari loop.
Gaya ini pengolahan koneksi memungkinkan Nginx untuk skala sangat jauh dengan sumber daya terbatas. Karena server adalah single-threaded dan proses tidak melahirkan untuk menangani setiap sambungan baru, memori dan penggunaan CPU cenderung tetap relatif konsisten, bahkan pada saat beban berat.
  
-. Di lihat dari segi distribusikan dan Sentralisasi Konfigurasi

Untuk administrator, salah satu perbedaan yang paling tampak jelas di antara dua buah perangkat lunak adalah apakah konfigurasi direktori tingkat yang diizinkan dalam direktori konten.

>Apache

Apache termasuk pilihan untuk memungkinkan konfigurasi tambahan pada basis per-direktori dengan memeriksa dan menafsirkan petunjuk dalam file tersembunyi dalam direktori konten sendiri. File-file ini dikenal sebagai .htaccess file.
Karena file ini berada dalam direktori konten sendiri, saat menangani permintaan, Apache memeriksa setiap komponen path ke file yang diminta untuk .htaccess berkas dan menerapkan arahan ditemukan dalam. Ini secara efektif memungkinkan konfigurasi desentralisasi dari web server, yang sering digunakan untuk melaksanakan penulisan ulang URL, pembatasan akses, otorisasi dan otentikasi, bahkan caching kebijakan.
Sementara contoh di atas semua bisa dikonfigurasi dalam utama file konfigurasi Apache, .htaccess file memiliki beberapa keuntungan penting. Pertama, karena ini ditafsirkan setiap kali mereka ditemukan di sepanjang jalan permintaan, mereka segera dilaksanakan tanpa reload server. Kedua, memungkinkan untuk memungkinkan pengguna non-hak istimewa untuk mengontrol aspek-aspek tertentu dari konten web mereka sendiri tanpa memberi mereka kontrol atas seluruh file konfigurasi.
Ini menyediakan cara mudah untuk perangkat lunak web tertentu, seperti sistem manajemen konten, untuk mengkonfigurasi lingkungan mereka tanpa memberikan akses ke file konfigurasi pusat. Hal ini juga digunakan oleh penyedia shared hosting untuk mempertahankan kontrol dari konfigurasi utama saat memberikan klien kontrol atas direktori khusus mereka.

>nginx

Nginx tidak menafsirkan .htaccess file, juga tidak memberikan mekanisme untuk mengevaluasi konfigurasi per-direktori di luar file konfigurasi utama. Ini mungkin kurang fleksibel dibandingkan dengan model Apache, tetapi memiliki keunggulan tersendiri.
Peningkatan yang paling menonjol selama .htaccess sistem konfigurasi direktori tingkat meningkat kinerja. Untuk setup khas Apache yang memungkinkan .htaccess di direktori manapun, server akan memeriksa file-file di setiap direktori induk yang mengarah ke file yang diminta, untuk setiap permintaan. Jika satu atau lebih .htaccess file yang ditemukan selama pencarian ini, mereka harus dibaca dan ditafsirkan. Dengan tidak membiarkan menimpa direktori, Nginx dapat melayani permintaan lebih cepat dengan
melakukan lookup direktori tunggal dan baca file untuk setiap permintaan (dengan asumsi bahwa file tersebut ditemukan dalam struktur direktori konvensional).
Keuntungan lain adalah keamanan terkait. Mendistribusikan akses konfigurasi direktori tingkat juga mendistribusikan tanggung jawab keamanan kepada pengguna individu, yang mungkin tidak dapat dipercaya untuk menangani tugas ini dengan baik. Memastikan bahwa administrator mempertahankan kontrol atas seluruh web server dapat mencegah beberapa salah langkah keamanan yang mungkin terjadi ketika akses diberikan kepada pihak lain.
Perlu diingat bahwa adalah mungkin untuk mematikan .htaccess interpretasi di Apache jika masalah ini beresonansi dengan Anda.
 
=> Kesimpulan
 Seperti yang sudah kita lihat, baik Apache dan Nginx yang kuat, fleksibel, dan mampu. nah itu semua keputusan kita untuk menggunakan web server yang manayang terbaik untuk kita gunakan dan melihat dari sebagian besar fungsi dan mengevaluasi kebutuhan spesifik server kita.


=> Referensi
-. https://id.wikipedia.org/wiki/Apache_HTTP_Server
-. https://id.wikipedia.org/wiki/Nginx
-. https://www.digitalocean.com/community/tutorials/apache-vs-nginx-practical-consideration

Mungkin hanya ini yang dapat saya tuliskan pada blog saya,masih banyak lagi perbedaan kedua web server tersebut, semoga informasi diatas bermanfaat
terimakasih,wassalamualaikum wr.wb.

0 komentar:

Posting Komentar