Kucing-Kucing Terpopuler Dengan Rambutya di Dunia

Gambar
 Kali ini saya akan berbagi bagi sobat semua, nah anda salah satu pecinta binatang peliharaan yang satu ini yaitu Kucing dengan karakter rambut (bulu)nya yang cukup tebal dan halus . Biasanya para wanita atau anak kecil paling suka jenis-jenis kucing ini. ok untuk jenis kucing inih dia di lihatin satu persatu...... 1 . Kucing MUNCHKIN (Toulouse)     Kucing Munchkin adalah ras kucing berkaki pendek . Istilah munchkin sendiri muncul ketika film Wizard of Oz sedang mencapai puncak popularitas. Dalam film tersebut terdapat para kurcaci/orang kerdil yang disebut munchkin. Sejak saat itulah istilah ini mulai melekat pada kucing berkaki pendek. Kaki pendek pada ras ini berhubungan dengan mutasi genetik, bukan karena manipulasi yang dilakukan oleh manusia. Gen yang menyebabkan kaki pendek pada kucing Munchkin sama dengan gen yang menyebabkan kaki pendek pada anjing ras Daschund (teckel) dan Welsh Corgi. Tidak seperti kedua ras anjing tersebut, munchkin tidak pernah mengalam

Web Server


1           Ringkasan Teori

Alat pengolahan data ini terbagi kedalam empat golongan yaitu :
1.       Alat manual
2.       Alat mekanik
3.       Alat mekanik elektronik
4.       Alat elektronik

A.      OVERVIEW
Web server merupakan sebuah server yang menggunakan protokol HTTP (Hyper Text Transfer Protocol) untuk melayani transfer data. Dengan protokol HTTP, komunikasi antar web server dengan clientnya (browser) dapat saling dimengerti dan lebih mudah. HTTP menggunakan suatu jalur akses yang dinamakan port. Port adalah pembagian akses berdasarkan nomor-nomor pada suatu host untuk masing-masing layanan yang diberikan oleh host tersebut. HTTP biasanya menggunakan port 80 sebagai port akses layanannya.
HTTP didefinisikan dari beberapa RFC (Request For Comments) yang ada di Internic dan sudah beberapa kali mengalami revisi (HTTP/09, HTTP/1.0, dan HTTP/1.1). HTTP menggunakan metode penulisan (pemanggilan) yang disediakan oleh URI (Universal Resource Identifier), antra lain penulisan URL untuk menyatakan lokasi resource yang akan diambil (contohnya : http://www.google.com:80/index.html). Jenis koneksi yang dilakukan oleh HTTP adalah connectionless, artinya hanya hubungan satu arah dari client ke server. Ini menjadi salah satu keuntungan penggunaan HTTP sebagai protocol internet karena tidak memerlukan proses handshake seperti halnya connection mode.
Keuntungan lain penggunaan HTTP sebagai protocol web adalah HTTP menggunakan Internet Media Types (dulu dikenal dengan sebutan MIME Content Types) sebagai pendefinisian tipe-tipe data tertentu yang dikirimkan pada header datanya sehingga sisi klien akan tahu jenis data apa yang akan dikirimkan setelah header ini. Dengan demikian software pada klien akan dapat segera membuka program yang bersesuaian dengan data yang dikirimkan.

B.       DEFINISI
Web server adalah software yang bertanggungjawab untuk menerima request http dari client, yakni browser misalnya mozilla firefox, google chrome, Internet Explorer atau opera dan memberikan respon berupa konten data html atau objek lainnya (misalnya gambar, mp3, video dll).

C.       JENIS-JENIS WEBSERVER
Saat ini terdapat banyak pilihan jenis web server yang bisa digunakan baik yang tersedia secara free atau gratis maupun yang berbayar. Beberapa diantaranya adalah sebagai berikut :
a.        IIS, Internet Information Services adalah web server yang dikembangkan oleh Microsoft merupakan bagian terintegrasi dari sistem operasi server yang dikeluarkan oleh Microsoft. Versi IIS terbaru yang berjalan pada sistem operasi Windows 2008 R2 dan Windows 7 adalah versi 7.5.
b.       Lighthttp, “lighty” sebuah web server yang dibuat oleh Jan Kneschke. Pada awalnya dibuat untuk mengatasi masalah “c10k” (Concurrent ten thousand connection). Sebuah masalah yang dihadapi dalam optimisasi sebuah webserver untuk mengatasi sepuluh ribu koneksi dalam waktu bersamaan
c.        Nginx, dibaca engine-x adalah web server yang dibuat oleh Igor Sysoev memiliki fitur tingkat stabilitas dan perfomansi yang tinggi, serta konsumsi resource yang rendah
d.       Apache, Web server yang paling populer saat ini. Statistik yang dibuat oleh netcraft (netcraft.com) menunjukan dominasi penggunaan apache dibandingkan dengan webserver lainnya.
e.       Contoh webserver lainnya antara lain : Cherokee, tornado, xitami, dll
Pada Exercise workbook ini akan dibahas mengenai Apache Web server yang merupakan software web server paling populer saat ini
D.      APACHE WEBSERVER
Apache merupakan pengembangan dari webserver NCSA (National Center for Supercomputing Applications) HTTP daemon (httpd). NCSA server merupakan webserver awal yang cukup populer, dan source codenya dimiliki publik. Pada tahun 1994 proses pengembangan NCSA berhenti karena pengembang utama, Rob McCool meninggalkan NSCA. Kemudian Sekelompok web administrator yang telah memodifikasi source code NCSA dan melakukan patch terhadap versi NCSA sebelumnya berkumpul  untuk mengkoordinasikan hasil patch ataupun penambahan fitur yang dilakukan oleh masing-masing dari mereka dan menyatukan perubahan source code tersebut.
Pada April 1995 kemudian mereka merelease apache untuk pertama kalinya ke publik yakni versi 0.6.2, disusul kemudian versi 0.8.8 pada bulan Agustus, dan apache versi 1.0 pada bulan Desember yang menempatkan Apache sebagai webserver no 1 yang paling banyak digunakan di Internet.
Mengapa disebut “Apache”?
Apache adalah “A PatCHy server” pada awalnya merupakan pengembangan dari kode yang sudah ada dan dilakukan “patch” yang berulang kali


E.       FITUR APACHE
Fitur utama yang menjadikan Apache sebagai web server yang lebih unggul dibandingkan dengan webserver lainnya adalah pada kecepatan, kemudahan konfigurasi, stabilitas dan kaya akan fitur lainnya. Penelitian perbandingan menunjukan apache lebih cepat dibandingkan dengan webserver lainnya, termasuk web server komersil.  Apache mudah dikonfigurasi dan dikonfigurasi ulang, konfigurasi berbentuk berkas teks dengan bahasa inggris yang sederhana. Untuk mengkonfigurasi ulang webserver yang berjalan cukup dengan merubah konfigurasi yang sedang berjalan kemudian melakukan restart terhadapanya.
Mengenai stabilitas, kemampuan apache melebihi para kompetitornya. Situs yang menerima hit sampai jutaan menunjukan tidak ada masalah. Apache dikenal memiliki bugs yang lebih sedikit dibandingkan dengan web server lainnya. Apache yang bersifat opensource memungkinkan user melakukan kontribusi terhadap pengembangan Apache. Selain fitur yang sudah disebutkan di atas, beberapa fitur lainnya adalah :
a.        Apache mudah di tambahkan modul lain dengan menggunakan fitur Dynamic Shared Objects(DSO). Dengan adanya fitur ini, penambahan modul dapat dilakukan tanpa harus melakukan proses kompilasi ulang karena bisa di load/unload pada saat apache berjalan, sama seperti shared library yang secara dinamis bisa di load/unload
b.       Apache menggunakan database biner untuk otentikasi user untuk web yang dilindungi menggunakan password.  Dengan format ini apache dapat mendukung sejumlah user tanpa harus terbebani oleh proses otentikasi user
c.        Apache mendukung virtual host, atau dikenal dengan multi-homed servers, yakni sebuah fitur yang memboleh satu mesin/server untuk melayani layanan web untuk banyak domain (banyak IP)
d.       Apache membolehkan administrator untuk mendefinisikan banyak berkas directory index untuk halaman default. Sehingga, ketika sebuah client melakukan request terhadap sebuah URL, server dapat memberikan halaman index.html, index.htm, index.php, index.cgi,  dll
e.       Apache mendukung server logging dengan berbagai format dan tingkat detail dari log tersebut. Apache dapat dikonfigurasi untuk menghasilkan unique identifier yang membedakan antara satu hit dengan hit lainnya.
f.         Apache dapat secara otomatis melakukan proses penyesuaian kemampuan web client yang melakukan koneksi, sebuah proses “content negotiation”. Ketika sebuah web client rusak, yang mana apache dapat menentukan kerusakannya misalnya penggunaan http yang tidak standar atau tidak support terhadap spesifikasi html tertentu, maka apache akan mengirimkan halaman web yang sudah dimodifikasi agar dapat memberikan tampilan terbaik untuk informasi yang diminta berdasarkan apa yang bisa diproses oleh klien tersebut  

F.       CARA KERJA APACHE
Agar dapat memahami apache, melakukan konfigurasi dan melakukan optimasi sesuai dengan kebutuhan maka ada baiknya memahami terlebih dahulu cara kerja sebuah web server secara umum.
Web Server
(Apache)
Web Client
( Browser )
Permintaan Data
Pengiriman Data
Port 80





Pada gambar diatas menunjukan proses umum ketika sebuah web browser (mozilla, IE, Opera, chrome dll) melakukan permintaan halaman web, dan kemudian Apache web server melakukan respon terhadap permintaan tersebut.
Web client (browser) pertama-tama akan melakukan DNS lookup pada nama server (domain) yang tertera di URL browser, untuk mendapatkan IP address dari domain tersebut. Setelah mendapatkan IP address domain pada URL kemudian akan melakukan koneksi ke port 80 pada IP address tersebut (atau port lainnya jika menggunakan port yang tidak standar), ketika sudah terbentuk koneksi client akan mengirimkan permintaan HTTP GET untuk dokumen yang ada pada URL (file html, gambar, mp3, atau script).
Ketika server menerima permintaan tersebut, kemudian akan menerjemahkan dokumen URL kedalam nama file yang ada di sistem lokal. Misalnya dokumen URL http://localhost/~budhi/index.html menjadi /home/budhi/public_html/index.html.  Setelah itu apache akan melakukan evaluasi apakah dokumen yang diminta tersebut memiliki akses kontrol atau tidak? Jika memiliki akan meminta username dan password atau langsung melakukan reject, tergantung dari access control yang disetting.  Apabila URL yang diminta adalah sebuah direktori (ditandai dengan tanda / di akhir), apache akan mencari halaman index dari directory tersebut, dan mengirimkannya kepada client. Bila halaman index directory tidak ditemukan apache akan mengirimkan list dari sebuah directory dalam format HTML atau mengirimkan pesan error, tergantung konfigurasi server apakah membolehkan list dari sebuah directory atau tidak. Pada beberapa kasus, dokumen dapat berupa file script misalnya script PHP atau cgi atau yang lainnya (misalnya python script). Pada kasus ini maka, apache akan mengeksekusi script tersebut (jika diperbolehkan) dan mengirimkan hasilnya pada klien.  Setelah apache mengirimkan dokumen yang diminta, dan klien sudah menerimanya, klien akan menutup koneksi dan apache akan menuliskan log untuk permintaan dokumen dari klien tersebut.
Beberapa halaman tertentu yang dibuat dengan bahasa pemrograman istimewa seperti java applets, dokumen yang dikirimkan akan di eksekusi disisi client bukan di sisi server.
G.      INSTALASI DAN KONFIGURASI APACHE
Instalasi
Instalasi Apache dapat dilakukan lewat beberapa cara, tergantung dari jenis sistem operasi yang digunakan. Misalnya untuk sistem operasi ubuntu dan debian bisa menggunakan manajemen paket apt-get , sedangkan untuk centos, fedora dan redhat bisa menggunakan manajemen paket yum, untuk SuSE bisa menggunakan manajemen paket YaST.
Perintah instalasi Apache2 menggunakan Ubuntu :
#sudo apt-get install Apache2

Setelah proses instalasi selesai, Apache akan meletakan file konfigurasi pada direktori /etc/apach2. Pada direktori tersebut akan disimpan file/directory konfigurasi lainnya yakni :
a.        Apache2.conf merupakan konfigurasi utama dari apache, berisi pengaturan umum apache2
b.       Conf.d berisi file-file konfigurasi yang diterapkan secara umum pada apache2. Paket lain yang menggunakan apache2 untuk melayani konten boleh menambahkan file/symlinks ke direktori ini
c.        Envvars : file dimana lingkungan variable apache2 di atur
d.       Httpd.conf adalah konfigurasi apache2 sebelumnya, dinamai seperti http daemon. File ini dapat digunakan untuk konfigurasi spesifik user yang mempengaruhi secara keseluruhan pengaturan apache2
e.       Mods-available direktori ini berisi file konfigurasi modul-module yang di load, meskipun tidak semua modul memiliki konfigurasi yang spesifik
f.         Mods-enabled : menyimpan file symlinks di /etc/apache2/mod-available. Ketika sebuah modul dikonfiguasi dengan file yang di symlinks akan di aktifkan pada restart selanjutnya
g.        Ports.conf : berisi pada TCP port berapa apache akan berfungsi
h.       Sites-available : direktori ini berisi mengenai konfigurasi apache2 untuk virtual host
i.         Sites-enabled : samapa seperti mod-enable, sites-enable berisi file symlinks ke /etc/apache/sites-available. Ketika file konfigurasi site-available di symlink, site tersebut akan diaktifkan pada restart selanjutnya.


Konfigurasi dasar
1.       Virtual Host, Apache2 dilengkapi dengan konfigurasi virtual-host yang sederhana. Secara default, terdapat satu settingan default virtual host (Virtual Host directive) yang dapat dimodifikasi sesuai dengan kebutuhan untuk satu buat host tunggal atau sebagai template untuk virtual host tambahan jika server akan digunakan untuk lebih dari satu situs. Default virtual host akan dijadikan sebagai situs default, situs akan memakai default virtual host ini jika pada URL tidak ditemukan  directive ServerName yang sesuai. Untuk modifikasi virtual host edit file /etc/apache2/site-availabe/default. Jika ingin menambahkan situs baru cukup dengan melakukan copy paste dari file default tersebut pada direktori yang sama misalnya dengan menjalan perintah:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/sitebaru edit file baru tersebut dengan parameter directive yang akan dijelaskan kemudian.
2.       ServerAdmin directive adalah parameter email address yang akan digunakan untuk pemberitahuan siapa pengelola web server tersebut atau dengan kata lain siapa webmasternya. ServerAdmin memiliki parameter default webmaster@localhost, sebaiknya digunakan email address pengelola yang resmi.
3.       Listen directive adalah parameter yang menunjukan penggunaan port dan IP address yang digunakan oleh web server tersebut. Jika IP address tidak di setting, maka secara default apache akan berfungsi untuk semua IP address yang ada pada semua interface webserver tersebut. Default port yang digunakan oleh apache adalah 80, bisa diubah dengan port lainnya selama port tersebut tidak digunakan oleh aplikasi lainnya (sebaiknya menggunakan port diatas 1024 jika ingin menggunakan port non standard). Settingan port berada pada file /etc/apache2/ports.conf
4.       ServerName directive adalah parameter pilihan, yang menunjukan FQDN dari situs yang dikelola oleh web server tersebut. Default virtual host tidak memiliki ServerName directive sehingga akan merespon semua request yang tidak cocok dengan ServerName directive yang ada pada virtual host lainnya. Jika kita sudah memiliki nama domain, maka ServerName directive diletakan pada virtual host untuk domain tersebut. Selain itu apache2 juga membolehkan penggunaan ServerAlias directive yang akan menghandle semua request untuk semua URL yang berakhiran tertentu. Misalnya sebuah domain jasait.com ingin agar semua request ke www.jasait.com , jasait.com, blog.jasait.com dan semua yang berakhiran .jasait.com merujuk pada suatu virtual host yang sama maka cukup dengan menambahkan directive :
SeverAlias   *.jasait.com
5.       DocumentRoot directive adalah parameter yang menunjukan lokasi dimana apache2 harus mencari file website suatu situs. Nilai defaultnya adalah /var/www. Tidak ada situs yang dikonfigurasi pada /var/www, namun apabila directive RedirectMatch pada file /etc/apache2/apache2.conf diaktifkan maka request akan di redirect ke /var/www/apache2-default yang mana situs apache2 default menanti. Sesuaikan settingan DocumentRoot ini ke lokasi tempat file situs berada
Setelah membahas mengenai pengaturan directive pada apache diatas,  apakah yang dimaksud dengan directive tersebut ?
Jawab : directive adalah


Untuk mengaktifkan VirtualHost menggunakan utilitas a2ensite dan merestart apache jalankan perintah berikut :
Sudo a2ensite mynewsite (atau nama virtual host baru yang dibuat)
Sudo service apache2 restart

Untuk menonaktifkan VirtualHost yang sudah dijalankan :
Sudo a2dissite mynewsite (atau nama virtual host baru yang dibuat)
Sudo service apache2 restart

Konfigurasi Default
Untuk setiap directive yang tidak di atur pada virtual host maka akan digunakan pengaturan default. Pengaturan default tersebut diantaranya adalah :
1.       DirectoryIndex adalah halaman default yang akan diberikan oleh server ketika ada request dari client terhadap index dari sebuah directory web yang ditandai dengan tanda slash (/) pada akhir nama directory. Misalkan ada ketika user melakukan request halaman http://blog.jasait.com/freebsd/, maka klien akan mendapatkan halaman dari DirectoryIndex jika ada, menghasilkan listing sebuah direktori jika opsi Indexes diaktifkan atau permision denied jika tidak ada file index atau opsi Indexes tidak diaktifkan. Nilai default dari DirectoryIndex ini dapat ditemukan pada file /etc/apache2/mods-available/dir.conf, nilai-nilai default tersebut diantaranya adalah : index.html. index.cgi, index.pl, index.php, index.xhtml, index.htm ketika apache menemukan file-file tersebut pada sebuah directory maka akan ditampilkan berdasarkan urutan prioritasnya.
2.       ErrorDocument directive dapat digunakan untuk melakukan pengaturan error pada apache2. Misalnya jika klien melakukan request terhadap sumberdaya yang tidak ada maka eror 404 akan ditampilkan dengan memberikan halaman page /usr/share/apache2/error/HTTP_NOT_FOUND.html.var. File tersebut tidak berada pada DocumentRoot akan tetapi memiliki directive alias pada /etc/apache2/apache2.conf yang meredirect permintaan ke direktori /errro pada /usr/share/apache2/error/. Untuk menampilkan nilai default dari ErrorDocument directives gunakan perintah berikut :
grep ErrorDocument /etc/apache2/apache2.conf
3.       Secara default server akan menyimpan file log akses apache di /var/log/apache2/access.log. pengaturan log dapat dirubah secara terpisah pada pengaturan virtual host masing-masing situs. Demikian juga dengan directive ErrorLog, secara default error log akan disimpan di /var/log/apache2/error.log. Level log dapat diatur dengan melakukan setting pada LogLevel directive yang bernilai ‘warn’ secara default.
4.       Beberapa opsi dilakukan pengaturan perdirektori, bukan perserver. Bentuk pengaturan direktori memiliki sintaks sebagai berikut :
…. (pengaturan opsi disini)
Adapun opsi-opsi tersebut adalah :
ExecCGI – membolehkan eksekusi file script CGI, script CGI tidak akan di eksekusi jika tidak ada opsi ini
Includes – membolehkan server-side includes yang membolehkan sebuah file HTML menginclude file lain
IncludesNOEXEC – membolehkan serverside includes tapi tidak boleh menjalankan script CGI
Indexes – membolehkan penampilan list dari sebuah direktori (untuk alasan keamanan sebaiknya tidak diaktifkan
Multiview – mendukung content-negotiated multiviews (secara default di disable untuk alasan keamanan)
SymLinksIfOwnerMatch – membolehkan symbolic links jika target file dimiliki oleh owner yang sama


Httpd settings
Lockfile – kecuali log file disimpan di sebuah NFS server, sebaiknya parameter ini disimpan pada local disk
PidFile – ini adalah directive untuk pengaturan process ID (pid) file ini harus bisa dibaca oleh root, sebaiknya nilainya tidak usah diganti
User – user directive adalah pengaturan user apa yang akan digunakan untuk menerima request dari client. Hindarkan penggunaan user root sebagai penerima request dari client/untuk menjalankan daemon apache2

Module tambahan Apache2
Apache2 bersifat modular. Oleh karenanya hanya fungsi dasar yang disertakan dalam server utama. Fitur tambahan dapat digunakan lewat modul tambahan yang dapat di load kedalam apache2. Secara default, beberapa modul dasar ditambahkan pada server saat kompilasi. Jika pada saat kompilasi apache digunakan dinamik load modul, maka modul-modul lain dapat di kompilasi secara terpisah, dan ditambahkan kapan saja dengan menggunakan directive LoadModule. Jika tidak (tidak menambahkan fitur dinamik load modul) maka apache2 harus di kompilasi ulang untuk menambahkan/menghapus suatu modul.
Ubuntu (dan beberapa varian Linux lainnya) mengkompil apache2 agar membolehkan dynamic loading modules. Untuk mengaktifkan sebuah module bisa menggunakan sintaks block .
Misalnya ingin menambahkan modul autentikasi mysql :
Pertama jalankan perintah : sudo apt-get install libapache2-mod-auth-mysql untuk menginstall modulnya
Kemudian jalan perintah utilitas a2enmod untuk mengaktifkan modul :
Sudo a2enmod auth_mysql
Sudo service apache2 restart


Dengan cara yang sama
Dengan cara yang sama untuk mendisable module :
Sudo a2dismod auth_mysql
Sudo service apache2 restart

HTTPS
Salah satu fitur penting apache2 lainnya adalah mod_ssl yakni sebuah modul yang membuat apache dapat melakukan proses enkripsi dalam pertukaran data antara server dan client (browser). Prefix https digunakan pada saat memasukan alamat URL untuk suatu website dengan ssl yang aktif. Mod_ssl terdapat pada paket apache2-common, untuk mengaktifkannya jalankan perintah :
Sudo a2enmod ssl
Terdapat konfigurasi default https pada file /etc/apache2/sites-available/default-ssl. Agar apache2 dapat memberikan layanan HTTPS, sebuah certificate dan key diperlukan. Konfigurasi https default akan menggunakan certificate dan key untuk membuat paket ssl-cert.  untuk mengkonfigurasi apache2 dengan https jalankan perintah berikut :
Sudo a2enmod default-ssl
Sudo service apache2 restart

Install Bahasa Pemrograman Script PHP5
Untuk melakukan instalasi PHP5 dapat dilakukan dengan menjalankan perintah :
Sudo apt-get install php5 libapache2-mod-php5
Agar PHP5 bisa dijalankan lewat command-line maka diperlukan paket PHP yang lain yakni PHP-cli untuk menginstallnya jalankan perintah :
Sudo apt-get install php5-cli
Untuk menggunakan PHP5 tanpa module apache bisa menggunakan paket PHP-cgi untuk instalasi gunakan perintah :
Sudo apt-get install php5-cgi
Untuk menggunakan mysql atau postgresql sebagai databasenya jalankan perintah berikut :
Sudo apt-get install php5-mysql
Sudo apt-get install php5-pgsql
Demikian juga jiga ingin menambakan ekstensi php lainnya, misalnya extensi gd atau xml dapat ditambahkan dengan perintah :
Sudo apt-get install php5-gd
Sudo apt-get install php5-xml
H.      TROUBLESHOOTING APACHE

2           Studi Kasus

Pada bagian ini dijelaskan kasus yang berkaitan dengan topik yang disampaikan beserta penyelesaian (solusi) kasus tersebut. Melalui studi kasus yang disajikan, diharapkan mahasiswa mempunyai gambaran yang lebih kongkret terkait topik yang disampaikan. Dengan memberikan solusi sesuai dengan kasus yang disampaikan, diharapkan mahasiswa mempunyai (alternatif) solusi yang sudah diuji kebenarannya.
Team dosen pengajar bertanggung jawab untuk melakukan validasi solusi yang disampaikan pada bagian studi kasus. Solusi yang dimaksud, dituliskan pada bagian 4 Pembahasan.
Studi kasus yang disampaikan diperbolehkan untuk dikerjakan secara individu atau berkelompok, sesuai dengan sasaran yang ingin dicapai. Yang harus diperhatikan adalah pencantuman cara pengerjaan soal-soal yang diberikan kepada mahasiswa.

1           Ringkasan Teori

Alat pengolahan data ini terbagi kedalam empat golongan yaitu :
1.       Alat manual
2.       Alat mekanik
3.       Alat mekanik elektronik
4.       Alat elektronik

A.      OVERVIEW
Web server merupakan sebuah server yang menggunakan protokol HTTP (Hyper Text Transfer Protocol) untuk melayani transfer data. Dengan protokol HTTP, komunikasi antar web server dengan clientnya (browser) dapat saling dimengerti dan lebih mudah. HTTP menggunakan suatu jalur akses yang dinamakan port. Port adalah pembagian akses berdasarkan nomor-nomor pada suatu host untuk masing-masing layanan yang diberikan oleh host tersebut. HTTP biasanya menggunakan port 80 sebagai port akses layanannya.
HTTP didefinisikan dari beberapa RFC (Request For Comments) yang ada di Internic dan sudah beberapa kali mengalami revisi (HTTP/09, HTTP/1.0, dan HTTP/1.1). HTTP menggunakan metode penulisan (pemanggilan) yang disediakan oleh URI (Universal Resource Identifier), antra lain penulisan URL untuk menyatakan lokasi resource yang akan diambil (contohnya : http://www.google.com:80/index.html). Jenis koneksi yang dilakukan oleh HTTP adalah connectionless, artinya hanya hubungan satu arah dari client ke server. Ini menjadi salah satu keuntungan penggunaan HTTP sebagai protocol internet karena tidak memerlukan proses handshake seperti halnya connection mode.
Keuntungan lain penggunaan HTTP sebagai protocol web adalah HTTP menggunakan Internet Media Types (dulu dikenal dengan sebutan MIME Content Types) sebagai pendefinisian tipe-tipe data tertentu yang dikirimkan pada header datanya sehingga sisi klien akan tahu jenis data apa yang akan dikirimkan setelah header ini. Dengan demikian software pada klien akan dapat segera membuka program yang bersesuaian dengan data yang dikirimkan.

B.       DEFINISI
Web server adalah software yang bertanggungjawab untuk menerima request http dari client, yakni browser misalnya mozilla firefox, google chrome, Internet Explorer atau opera dan memberikan respon berupa konten data html atau objek lainnya (misalnya gambar, mp3, video dll).

C.       JENIS-JENIS WEBSERVER
Saat ini terdapat banyak pilihan jenis web server yang bisa digunakan baik yang tersedia secara free atau gratis maupun yang berbayar. Beberapa diantaranya adalah sebagai berikut :
a.        IIS, Internet Information Services adalah web server yang dikembangkan oleh Microsoft merupakan bagian terintegrasi dari sistem operasi server yang dikeluarkan oleh Microsoft. Versi IIS terbaru yang berjalan pada sistem operasi Windows 2008 R2 dan Windows 7 adalah versi 7.5.
b.       Lighthttp, “lighty” sebuah web server yang dibuat oleh Jan Kneschke. Pada awalnya dibuat untuk mengatasi masalah “c10k” (Concurrent ten thousand connection). Sebuah masalah yang dihadapi dalam optimisasi sebuah webserver untuk mengatasi sepuluh ribu koneksi dalam waktu bersamaan
c.        Nginx, dibaca engine-x adalah web server yang dibuat oleh Igor Sysoev memiliki fitur tingkat stabilitas dan perfomansi yang tinggi, serta konsumsi resource yang rendah
d.       Apache, Web server yang paling populer saat ini. Statistik yang dibuat oleh netcraft (netcraft.com) menunjukan dominasi penggunaan apache dibandingkan dengan webserver lainnya.
e.       Contoh webserver lainnya antara lain : Cherokee, tornado, xitami, dll
Pada Exercise workbook ini akan dibahas mengenai Apache Web server yang merupakan software web server paling populer saat ini
D.      APACHE WEBSERVER
Apache merupakan pengembangan dari webserver NCSA (National Center for Supercomputing Applications) HTTP daemon (httpd). NCSA server merupakan webserver awal yang cukup populer, dan source codenya dimiliki publik. Pada tahun 1994 proses pengembangan NCSA berhenti karena pengembang utama, Rob McCool meninggalkan NSCA. Kemudian Sekelompok web administrator yang telah memodifikasi source code NCSA dan melakukan patch terhadap versi NCSA sebelumnya berkumpul  untuk mengkoordinasikan hasil patch ataupun penambahan fitur yang dilakukan oleh masing-masing dari mereka dan menyatukan perubahan source code tersebut.
Pada April 1995 kemudian mereka merelease apache untuk pertama kalinya ke publik yakni versi 0.6.2, disusul kemudian versi 0.8.8 pada bulan Agustus, dan apache versi 1.0 pada bulan Desember yang menempatkan Apache sebagai webserver no 1 yang paling banyak digunakan di Internet.
Mengapa disebut “Apache”?
Apache adalah “A PatCHy server” pada awalnya merupakan pengembangan dari kode yang sudah ada dan dilakukan “patch” yang berulang kali


E.       FITUR APACHE
Fitur utama yang menjadikan Apache sebagai web server yang lebih unggul dibandingkan dengan webserver lainnya adalah pada kecepatan, kemudahan konfigurasi, stabilitas dan kaya akan fitur lainnya. Penelitian perbandingan menunjukan apache lebih cepat dibandingkan dengan webserver lainnya, termasuk web server komersil.  Apache mudah dikonfigurasi dan dikonfigurasi ulang, konfigurasi berbentuk berkas teks dengan bahasa inggris yang sederhana. Untuk mengkonfigurasi ulang webserver yang berjalan cukup dengan merubah konfigurasi yang sedang berjalan kemudian melakukan restart terhadapanya.
Mengenai stabilitas, kemampuan apache melebihi para kompetitornya. Situs yang menerima hit sampai jutaan menunjukan tidak ada masalah. Apache dikenal memiliki bugs yang lebih sedikit dibandingkan dengan web server lainnya. Apache yang bersifat opensource memungkinkan user melakukan kontribusi terhadap pengembangan Apache. Selain fitur yang sudah disebutkan di atas, beberapa fitur lainnya adalah :
a.        Apache mudah di tambahkan modul lain dengan menggunakan fitur Dynamic Shared Objects(DSO). Dengan adanya fitur ini, penambahan modul dapat dilakukan tanpa harus melakukan proses kompilasi ulang karena bisa di load/unload pada saat apache berjalan, sama seperti shared library yang secara dinamis bisa di load/unload
b.       Apache menggunakan database biner untuk otentikasi user untuk web yang dilindungi menggunakan password.  Dengan format ini apache dapat mendukung sejumlah user tanpa harus terbebani oleh proses otentikasi user
c.        Apache mendukung virtual host, atau dikenal dengan multi-homed servers, yakni sebuah fitur yang memboleh satu mesin/server untuk melayani layanan web untuk banyak domain (banyak IP)
d.       Apache membolehkan administrator untuk mendefinisikan banyak berkas directory index untuk halaman default. Sehingga, ketika sebuah client melakukan request terhadap sebuah URL, server dapat memberikan halaman index.html, index.htm, index.php, index.cgi,  dll
e.       Apache mendukung server logging dengan berbagai format dan tingkat detail dari log tersebut. Apache dapat dikonfigurasi untuk menghasilkan unique identifier yang membedakan antara satu hit dengan hit lainnya.
f.         Apache dapat secara otomatis melakukan proses penyesuaian kemampuan web client yang melakukan koneksi, sebuah proses “content negotiation”. Ketika sebuah web client rusak, yang mana apache dapat menentukan kerusakannya misalnya penggunaan http yang tidak standar atau tidak support terhadap spesifikasi html tertentu, maka apache akan mengirimkan halaman web yang sudah dimodifikasi agar dapat memberikan tampilan terbaik untuk informasi yang diminta berdasarkan apa yang bisa diproses oleh klien tersebut  

F.       CARA KERJA APACHE
Agar dapat memahami apache, melakukan konfigurasi dan melakukan optimasi sesuai dengan kebutuhan maka ada baiknya memahami terlebih dahulu cara kerja sebuah web server secara umum.
Web Server
(Apache)
Web Client
( Browser )
Permintaan Data
Pengiriman Data
Port 80





Pada gambar diatas menunjukan proses umum ketika sebuah web browser (mozilla, IE, Opera, chrome dll) melakukan permintaan halaman web, dan kemudian Apache web server melakukan respon terhadap permintaan tersebut.
Web client (browser) pertama-tama akan melakukan DNS lookup pada nama server (domain) yang tertera di URL browser, untuk mendapatkan IP address dari domain tersebut. Setelah mendapatkan IP address domain pada URL kemudian akan melakukan koneksi ke port 80 pada IP address tersebut (atau port lainnya jika menggunakan port yang tidak standar), ketika sudah terbentuk koneksi client akan mengirimkan permintaan HTTP GET untuk dokumen yang ada pada URL (file html, gambar, mp3, atau script).
Ketika server menerima permintaan tersebut, kemudian akan menerjemahkan dokumen URL kedalam nama file yang ada di sistem lokal. Misalnya dokumen URL http://localhost/~budhi/index.html menjadi /home/budhi/public_html/index.html.  Setelah itu apache akan melakukan evaluasi apakah dokumen yang diminta tersebut memiliki akses kontrol atau tidak? Jika memiliki akan meminta username dan password atau langsung melakukan reject, tergantung dari access control yang disetting.  Apabila URL yang diminta adalah sebuah direktori (ditandai dengan tanda / di akhir), apache akan mencari halaman index dari directory tersebut, dan mengirimkannya kepada client. Bila halaman index directory tidak ditemukan apache akan mengirimkan list dari sebuah directory dalam format HTML atau mengirimkan pesan error, tergantung konfigurasi server apakah membolehkan list dari sebuah directory atau tidak. Pada beberapa kasus, dokumen dapat berupa file script misalnya script PHP atau cgi atau yang lainnya (misalnya python script). Pada kasus ini maka, apache akan mengeksekusi script tersebut (jika diperbolehkan) dan mengirimkan hasilnya pada klien.  Setelah apache mengirimkan dokumen yang diminta, dan klien sudah menerimanya, klien akan menutup koneksi dan apache akan menuliskan log untuk permintaan dokumen dari klien tersebut.
Beberapa halaman tertentu yang dibuat dengan bahasa pemrograman istimewa seperti java applets, dokumen yang dikirimkan akan di eksekusi disisi client bukan di sisi server.
G.      INSTALASI DAN KONFIGURASI APACHE
Instalasi
Instalasi Apache dapat dilakukan lewat beberapa cara, tergantung dari jenis sistem operasi yang digunakan. Misalnya untuk sistem operasi ubuntu dan debian bisa menggunakan manajemen paket apt-get , sedangkan untuk centos, fedora dan redhat bisa menggunakan manajemen paket yum, untuk SuSE bisa menggunakan manajemen paket YaST.
Perintah instalasi Apache2 menggunakan Ubuntu :
#sudo apt-get install Apache2

Setelah proses instalasi selesai, Apache akan meletakan file konfigurasi pada direktori /etc/apach2. Pada direktori tersebut akan disimpan file/directory konfigurasi lainnya yakni :
a.        Apache2.conf merupakan konfigurasi utama dari apache, berisi pengaturan umum apache2
b.       Conf.d berisi file-file konfigurasi yang diterapkan secara umum pada apache2. Paket lain yang menggunakan apache2 untuk melayani konten boleh menambahkan file/symlinks ke direktori ini
c.        Envvars : file dimana lingkungan variable apache2 di atur
d.       Httpd.conf adalah konfigurasi apache2 sebelumnya, dinamai seperti http daemon. File ini dapat digunakan untuk konfigurasi spesifik user yang mempengaruhi secara keseluruhan pengaturan apache2
e.       Mods-available direktori ini berisi file konfigurasi modul-module yang di load, meskipun tidak semua modul memiliki konfigurasi yang spesifik
f.         Mods-enabled : menyimpan file symlinks di /etc/apache2/mod-available. Ketika sebuah modul dikonfiguasi dengan file yang di symlinks akan di aktifkan pada restart selanjutnya
g.        Ports.conf : berisi pada TCP port berapa apache akan berfungsi
h.       Sites-available : direktori ini berisi mengenai konfigurasi apache2 untuk virtual host
i.         Sites-enabled : samapa seperti mod-enable, sites-enable berisi file symlinks ke /etc/apache/sites-available. Ketika file konfigurasi site-available di symlink, site tersebut akan diaktifkan pada restart selanjutnya.


Konfigurasi dasar
1.       Virtual Host, Apache2 dilengkapi dengan konfigurasi virtual-host yang sederhana. Secara default, terdapat satu settingan default virtual host (Virtual Host directive) yang dapat dimodifikasi sesuai dengan kebutuhan untuk satu buat host tunggal atau sebagai template untuk virtual host tambahan jika server akan digunakan untuk lebih dari satu situs. Default virtual host akan dijadikan sebagai situs default, situs akan memakai default virtual host ini jika pada URL tidak ditemukan  directive ServerName yang sesuai. Untuk modifikasi virtual host edit file /etc/apache2/site-availabe/default. Jika ingin menambahkan situs baru cukup dengan melakukan copy paste dari file default tersebut pada direktori yang sama misalnya dengan menjalan perintah:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/sitebaru edit file baru tersebut dengan parameter directive yang akan dijelaskan kemudian.
2.       ServerAdmin directive adalah parameter email address yang akan digunakan untuk pemberitahuan siapa pengelola web server tersebut atau dengan kata lain siapa webmasternya. ServerAdmin memiliki parameter default webmaster@localhost, sebaiknya digunakan email address pengelola yang resmi.
3.       Listen directive adalah parameter yang menunjukan penggunaan port dan IP address yang digunakan oleh web server tersebut. Jika IP address tidak di setting, maka secara default apache akan berfungsi untuk semua IP address yang ada pada semua interface webserver tersebut. Default port yang digunakan oleh apache adalah 80, bisa diubah dengan port lainnya selama port tersebut tidak digunakan oleh aplikasi lainnya (sebaiknya menggunakan port diatas 1024 jika ingin menggunakan port non standard). Settingan port berada pada file /etc/apache2/ports.conf
4.       ServerName directive adalah parameter pilihan, yang menunjukan FQDN dari situs yang dikelola oleh web server tersebut. Default virtual host tidak memiliki ServerName directive sehingga akan merespon semua request yang tidak cocok dengan ServerName directive yang ada pada virtual host lainnya. Jika kita sudah memiliki nama domain, maka ServerName directive diletakan pada virtual host untuk domain tersebut. Selain itu apache2 juga membolehkan penggunaan ServerAlias directive yang akan menghandle semua request untuk semua URL yang berakhiran tertentu. Misalnya sebuah domain jasait.com ingin agar semua request ke www.jasait.com , jasait.com, blog.jasait.com dan semua yang berakhiran .jasait.com merujuk pada suatu virtual host yang sama maka cukup dengan menambahkan directive :
SeverAlias   *.jasait.com
5.       DocumentRoot directive adalah parameter yang menunjukan lokasi dimana apache2 harus mencari file website suatu situs. Nilai defaultnya adalah /var/www. Tidak ada situs yang dikonfigurasi pada /var/www, namun apabila directive RedirectMatch pada file /etc/apache2/apache2.conf diaktifkan maka request akan di redirect ke /var/www/apache2-default yang mana situs apache2 default menanti. Sesuaikan settingan DocumentRoot ini ke lokasi tempat file situs berada
Setelah membahas mengenai pengaturan directive pada apache diatas,  apakah yang dimaksud dengan directive tersebut ?
Jawab : directive adalah


Untuk mengaktifkan VirtualHost menggunakan utilitas a2ensite dan merestart apache jalankan perintah berikut :
Sudo a2ensite mynewsite (atau nama virtual host baru yang dibuat)
Sudo service apache2 restart

Untuk menonaktifkan VirtualHost yang sudah dijalankan :
Sudo a2dissite mynewsite (atau nama virtual host baru yang dibuat)
Sudo service apache2 restart

Konfigurasi Default
Untuk setiap directive yang tidak di atur pada virtual host maka akan digunakan pengaturan default. Pengaturan default tersebut diantaranya adalah :
1.       DirectoryIndex adalah halaman default yang akan diberikan oleh server ketika ada request dari client terhadap index dari sebuah directory web yang ditandai dengan tanda slash (/) pada akhir nama directory. Misalkan ada ketika user melakukan request halaman http://blog.jasait.com/freebsd/, maka klien akan mendapatkan halaman dari DirectoryIndex jika ada, menghasilkan listing sebuah direktori jika opsi Indexes diaktifkan atau permision denied jika tidak ada file index atau opsi Indexes tidak diaktifkan. Nilai default dari DirectoryIndex ini dapat ditemukan pada file /etc/apache2/mods-available/dir.conf, nilai-nilai default tersebut diantaranya adalah : index.html. index.cgi, index.pl, index.php, index.xhtml, index.htm ketika apache menemukan file-file tersebut pada sebuah directory maka akan ditampilkan berdasarkan urutan prioritasnya.
2.       ErrorDocument directive dapat digunakan untuk melakukan pengaturan error pada apache2. Misalnya jika klien melakukan request terhadap sumberdaya yang tidak ada maka eror 404 akan ditampilkan dengan memberikan halaman page /usr/share/apache2/error/HTTP_NOT_FOUND.html.var. File tersebut tidak berada pada DocumentRoot akan tetapi memiliki directive alias pada /etc/apache2/apache2.conf yang meredirect permintaan ke direktori /errro pada /usr/share/apache2/error/. Untuk menampilkan nilai default dari ErrorDocument directives gunakan perintah berikut :
grep ErrorDocument /etc/apache2/apache2.conf
3.       Secara default server akan menyimpan file log akses apache di /var/log/apache2/access.log. pengaturan log dapat dirubah secara terpisah pada pengaturan virtual host masing-masing situs. Demikian juga dengan directive ErrorLog, secara default error log akan disimpan di /var/log/apache2/error.log. Level log dapat diatur dengan melakukan setting pada LogLevel directive yang bernilai ‘warn’ secara default.
4.       Beberapa opsi dilakukan pengaturan perdirektori, bukan perserver. Bentuk pengaturan direktori memiliki sintaks sebagai berikut :
…. (pengaturan opsi disini)
Adapun opsi-opsi tersebut adalah :
ExecCGI – membolehkan eksekusi file script CGI, script CGI tidak akan di eksekusi jika tidak ada opsi ini
Includes – membolehkan server-side includes yang membolehkan sebuah file HTML menginclude file lain
IncludesNOEXEC – membolehkan serverside includes tapi tidak boleh menjalankan script CGI
Indexes – membolehkan penampilan list dari sebuah direktori (untuk alasan keamanan sebaiknya tidak diaktifkan
Multiview – mendukung content-negotiated multiviews (secara default di disable untuk alasan keamanan)
SymLinksIfOwnerMatch – membolehkan symbolic links jika target file dimiliki oleh owner yang sama


Httpd settings
Lockfile – kecuali log file disimpan di sebuah NFS server, sebaiknya parameter ini disimpan pada local disk
PidFile – ini adalah directive untuk pengaturan process ID (pid) file ini harus bisa dibaca oleh root, sebaiknya nilainya tidak usah diganti
User – user directive adalah pengaturan user apa yang akan digunakan untuk menerima request dari client. Hindarkan penggunaan user root sebagai penerima request dari client/untuk menjalankan daemon apache2

Module tambahan Apache2
Apache2 bersifat modular. Oleh karenanya hanya fungsi dasar yang disertakan dalam server utama. Fitur tambahan dapat digunakan lewat modul tambahan yang dapat di load kedalam apache2. Secara default, beberapa modul dasar ditambahkan pada server saat kompilasi. Jika pada saat kompilasi apache digunakan dinamik load modul, maka modul-modul lain dapat di kompilasi secara terpisah, dan ditambahkan kapan saja dengan menggunakan directive LoadModule. Jika tidak (tidak menambahkan fitur dinamik load modul) maka apache2 harus di kompilasi ulang untuk menambahkan/menghapus suatu modul.
Ubuntu (dan beberapa varian Linux lainnya) mengkompil apache2 agar membolehkan dynamic loading modules. Untuk mengaktifkan sebuah module bisa menggunakan sintaks block .
Misalnya ingin menambahkan modul autentikasi mysql :
Pertama jalankan perintah : sudo apt-get install libapache2-mod-auth-mysql untuk menginstall modulnya
Kemudian jalan perintah utilitas a2enmod untuk mengaktifkan modul :
Sudo a2enmod auth_mysql
Sudo service apache2 restart


Dengan cara yang sama
Dengan cara yang sama untuk mendisable module :
Sudo a2dismod auth_mysql
Sudo service apache2 restart

HTTPS
Salah satu fitur penting apache2 lainnya adalah mod_ssl yakni sebuah modul yang membuat apache dapat melakukan proses enkripsi dalam pertukaran data antara server dan client (browser). Prefix https digunakan pada saat memasukan alamat URL untuk suatu website dengan ssl yang aktif. Mod_ssl terdapat pada paket apache2-common, untuk mengaktifkannya jalankan perintah :
Sudo a2enmod ssl
Terdapat konfigurasi default https pada file /etc/apache2/sites-available/default-ssl. Agar apache2 dapat memberikan layanan HTTPS, sebuah certificate dan key diperlukan. Konfigurasi https default akan menggunakan certificate dan key untuk membuat paket ssl-cert.  untuk mengkonfigurasi apache2 dengan https jalankan perintah berikut :
Sudo a2enmod default-ssl
Sudo service apache2 restart

Install Bahasa Pemrograman Script PHP5
Untuk melakukan instalasi PHP5 dapat dilakukan dengan menjalankan perintah :
Sudo apt-get install php5 libapache2-mod-php5
Agar PHP5 bisa dijalankan lewat command-line maka diperlukan paket PHP yang lain yakni PHP-cli untuk menginstallnya jalankan perintah :
Sudo apt-get install php5-cli
Untuk menggunakan PHP5 tanpa module apache bisa menggunakan paket PHP-cgi untuk instalasi gunakan perintah :
Sudo apt-get install php5-cgi
Untuk menggunakan mysql atau postgresql sebagai databasenya jalankan perintah berikut :
Sudo apt-get install php5-mysql
Sudo apt-get install php5-pgsql
Demikian juga jiga ingin menambakan ekstensi php lainnya, misalnya extensi gd atau xml dapat ditambahkan dengan perintah :
Sudo apt-get install php5-gd
Sudo apt-get install php5-xml
H.      TROUBLESHOOTING APACHE

2           Studi Kasus

Pada bagian ini dijelaskan kasus yang berkaitan dengan topik yang disampaikan beserta penyelesaian (solusi) kasus tersebut. Melalui studi kasus yang disajikan, diharapkan mahasiswa mempunyai gambaran yang lebih kongkret terkait topik yang disampaikan. Dengan memberikan solusi sesuai dengan kasus yang disampaikan, diharapkan mahasiswa mempunyai (alternatif) solusi yang sudah diuji kebenarannya.
Team dosen pengajar bertanggung jawab untuk melakukan validasi solusi yang disampaikan pada bagian studi kasus. Solusi yang dimaksud, dituliskan pada bagian 4 Pembahasan.
Studi kasus yang disampaikan diperbolehkan untuk dikerjakan secara individu atau berkelompok, sesuai dengan sasaran yang ingin dicapai. Yang harus diperhatikan adalah pencantuman cara pengerjaan soal-soal yang diberikan kepada mahasiswa.
v

Komentar

Postingan populer dari blog ini

Konsep, komponen dan fungsi FTP server, memahami mode transfer pada FTP, memahami perbedaan antara FTP dan TFTP

Kucing-Kucing Terpopuler Dengan Rambutya di Dunia

Protokol Transfer File,Network File System (NFS)