Web Server

Web Server adalah sebuah perangkat lunak server yang berfungsi menerima permintaan HTTP atau HTTPS dari klien yang dikenal dengan browser web dan mengirimkan kembali hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML. Server web yang terkenal diantaranya adalah Apache dan Microsoft Internet Information Service (IIS). Apache merupakan server web antar-platform, sedangkan IIS hanya dapat beroperasi di sistem operasi Windows.
Web Server
Definisi :
Fungsi utama sebuah Web Server adalah untuk mentransfer berkas atas permintaan pengguna melalui protokol komunikasi yang telah ditentukan. Disebabkan sebuah halaman web dapat terdiri atas berkas teks, gambar, video, dan lainnya. Pemanfaatan Web Server berfungsi pula untuk mentransfer seluruh aspek pemberkasan dalam sebuah halaman web yang terkait; termasuk di dalamnya teks, gambar, video, atau lainnya.

Pengguna biasanya melalui aplikasi pengguna seperti web browser yang telah di sebutkan diatas, meminta layanan atas berkas ataupun halaman web yang terdapat pada sebuah server web, kemudian server sebagai manajer layanan tersebut akan merespon balik dengan mengirimkan halaman dan berkas-berkas pendukung yang dibutuhkan, atau menolak permintaan tersebut jika halaman yang diminta tidak tersedia.

Saat ini umumnya Web Server telah dilengkapi pula dengan mesin penerjemah bahasa skrip yang memungkinkan Web Server menyediakan layanan situs web dinamis dengan memanfaatkan pustaka tambahan seperti PHP, ASP.

Pemanfaatan Web Server saat ini tidak terbatas hanya untuk publikasi situs web dalam World Wide Web, pada prakteknya Web Server banyak pula digunakan dalam perangkat-perangkat keras lain seperti printer, router, kamera web yang menyediakan akses layanan http dalam jaringan lokal yang ditujukan untuk menyediakan perangkat manajemen serta mempermudah peninjauan atas perangkat keras tersebut.

Apa yang perlu dipertimbangkan dalam memilih Web Server?
Soal pilihan Web Server dan juga php type mungkin agak bersifat debateble, karena ini hanya bersifat pengenalan maka tidak perlu diperdebatkan. Isu yang terkait dengan hal ini adalah soal efisiensi memory, kecepatan (speed), compatibilitas, tingkat kesulitan konfigurasi dan soal keamanan.

Tidak perlu berpanjang lebar dengan web server Apache, karena pada kloxo official dari dulu juga telah tersedia apache, dan juga mayoritas besar pengguna web server adalah menggunakan apache. Bahwa apache adalah web server yang compatibilitas-nya paling tinggi, rata-rata software bisa match dengan apache, dan penggunaan (konfigurasi) apache juga sangat mudah terutama dengan keberadaan file .httaccess. Namun sayang ternyata apache boros memory, dalam kontek seperti yang tertera dalam kloxo pada grafik penggunaan memory. Itu saja. (Bila lebih jauh pernyataan ini bisa diperdebatkan, dan perlu penjelasan panjang lebar).

Kelemahan tersebut di atas bisa tertutupi bila memilih nginx-proxy sebagai web server, yaitu nginx sebagai front-end dan apache sebagai back-end. Cara kerjanya adalah nginx fokus pada file, sedangkan apache fokus proxy. Dengan demikian static file ditangani oleh Nginx, sedangkan proxy sebagai dynamic request untuk PHP akan ditangani Apache. Ini juga penting bila ada kasus lain yang tidak bisa ditangani nginx maka langsung oper handle oleh apache. Artinya nginx yang dikenal sangat efisien bergabung dengan segala keunggulan kompatibilitas apache (file .httacces tetap bisa digunakan). Disamping itu sebenarnya bisa juga memilih lighttpd-proxy, tapi masih lebih nge-trend nginx-proxy.

Opsi selanjutnya adalah hanya nginx. Web server ini lagi naik daun dan banyak diperbincangkan karena speed dan efisiensi memory-nya. Namun sayang penggunaan dan konfigurasi-nya relatif sulit, yang berarti kompatibilitas-nya juga relatif rendah. Tidak seperti apache yang bersifat tinggal pakai. Namun jangan berkecil hati, nginx yang terdapat dalam Kloxo-MR (‘nginx-special’) relatif kompatibel karena permalink sudah aktif ditambah beberapa modul tambahan (third-party) termasuk modul purge-cache.

Opsi terakhir adalah lighttpd, ini juga sudah terdapat dalam Kloxo Official. Lighttpd ini juga dikenal efisien soal memory namun isunya tetap sama yaitu kesulitan permalink dan wildcard. Jadi untuk para newbi disarankan untuk memilih nginx-proxy, tapi silahkan mengeksplorasi masing-masing opsi tersebut, mana yang lebih sesuai. Dangan jangan lupa soal dns, switch dari BIND menjadi Djbdns karena lebih efisien (hemat 50mb RAM), tapi silahkan juga kalau lebih mantap dengan BIND.

Apa yang perlu dipertimbangkan dalam memilih PHP Type?
Opsi php type ini akan muncul bila memilih apache, nginx-proxy atau lighttpd-proxy sebagai web server. Karena memang hanya apache yang memungkinkan kompatibel dengan berbagai macam php type tersebut. Sedangkan nginx dan lighttpd selalu default php-fpm.

Dapat diibaratkan sebuah restoran, ketika ada telepon untuk request suatu makanan maka kru restoran yang menerima telepon request itu yang berangkat memasak dan menyiapkan pesanan makanan. Bayangkan itu kalau request-nya sampai ribuan maka betapa rumit. Celakanya lagi si penerima request itu tidak dibebaskan, alias hanya menunggu dan bekerja bila ada request yang sama seperti request pertama.

Sedangkan yang ada akhiran event dan worker si penerima telepon bisa mendelegasikan memasak kepada para koki. Dan ketika selesai bekerja mereka dibebaskan, dan siap kembali pekerja apa pun request-nya. Sedangkan untuk php-fpm lebih canggih lagi karena langsung di-manage oleh php-fpm sehingga bisa mendelegasikan (children) sampai ratusan bahkan ribuan. Sehingga bisa komunikasi ke banyak thread. Inilah yang menyebabkan php-fpm bisa menangani high-traffic website pada server yang memorynya terbatas.

Hal ini sebagai gambaran saja, tentu bila php-fpm adalah pilihan super, maka opsi lain akan ditiadakan. Dan Kloxo-MR menyediakan begitu banyak opsi untuk kemungkinan bila ada user yang punya pertimbangan lain dan punya kebutuhan khusus. Misalnya Suphp yang dinilai tingkat keamanannya paling tinggi (kalau memilih ini perlu diperhatikan fix permission & ownership). Atau mungkin mod_php ruid dianggap kompatibilitas-nya paling tinggi. Atau mungkin ada pertimbangan lain lagi.

Apa yang perlu dipertimbangkan dalam memilih Database Engine?
Pertama yang perlu dijadikan pertimbangan adalah resource server yang kita miliki, terutama memory. Terlepas dari jumlah trafik pengunjung situs, pilihan database ini menentukan start awal konsumsi memory. Misalnya bila kita memilih MariaDB maka sebaiknya server dengan memory minimal 1 Gb. Karena start awal MariaDB sudah sekitar 500mb, belum lagi standar konsumsi MariaDB mengikuti InnoDB storage engine yang dikenal cukup tinggi konsumsi memory-nya. Jadi bila sudah dijalankan akan bisa mendekati ambang batas 1G, dan akan memerlukan sedikit tweak supaya resource nggak habis.

Jadi bila menghendaki bermain aman maka untuk memilih MariaDB sebaiknya dg memory lebih dari 1 Gb.

Begitu pula bila kita tetap memilih default MySQL dan dengan memilih InnoDB maka dengan konfigurasi “medium” my.cnf maka resource memory 1Gb juga akan menipis.

Jadi bila resource memory memang kecil maka disarankan untuk tetap memilih default MysQL bekerjasama dengan MyIsam. Memory 256 mb juga akan cukup dan bila perlu bisa ditingkatkan lagi performance-nya dengan “medium” my.cnf atau metode tweak yang lain.

Pertimbangan kedua adalah berbasis pada kebutuhan dan selera. Pilihan yang tersedia adalah MySQL vs MariaDB. Untuk masalah ini silahkan bertanya sendiri pada Mr. Google, yang jelas hampir semua kebutuhan yang bisa dilayani MySQL juga bisa dilayani oleh MariaDB plus beberapa kelebihan.

Untuk masalah tersebut di atas, mungkin yang lebih perlu diperhatikan adalah soal pilihan storage engine : MyIsam atau InnoDB. Secara singkat dapat dikatakan bahwa MyIsam sesuai untuk database situs yang sederhana misalnya upload/posting hanya oleh admin. Dan keunggulan MyIsam adalah medukung full-text indexing, jadi sangat sesuai untuk situs yang ditujukan untuk pengunjung dg proses pencarian data yang besar dengan kecepatan tinggi.

Kelemahan MyIsam adalah tidak mendukung transaksi dan integritas data kurang stabil alias mudah kres bila terjadi updating data pada satu tabel secara bersamaan oleh banyak user. Kelemahan tersebut adalah keunggulan InnoDB, dan sebaliknya.

Tentu saja bila memang termasuk situs high trafik, apalagi content database-nya juga besar maka akan cenderung menjadi rumit, dan bila memang demikian maka pilihan yang tepat adalah InnoDB. Juga apabila itu situs ecommerce, jika memang terjadi banyak “transaksi” dalam database-nya. Atau juga jenis situs lain yang termasuk rumit.

Enter your email address:

Delivered by FeedBurner

Satu Komentar

  1. ooo begitu ya.. hmm baru tau…

Tinggalin Pesan

Tenang bro Email aman, ga ane publish >>>Wajib di isi yang ada tanda *

*