Friday, August 20, 2010

Web server dan Virtual Host

Web server adalah software yang menjadi tulang belakang dari world wide web (www). Web server menunggu permintaan dari client yang menggunakan browser seperti Netscape Navigator, Internet Explorer, Modzilla, dan program browser lainnya. Jika ada permintaan dari browser, maka web server akan memproses permintaan itu kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser. Data ini mempunyai format yang standar, disebut dengan format SGML (standar general markup language). Data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan kemampuan browser tersebut. Contohnya, bila data yang dikirim berupa gambar, browser yang hanya mampu menampilkan teks (misalnya lynx) tidak akan mampu menampilkan gambar tersebut, dan jika ada akan menampilkan alternatifnya saja. Web server, untuk berkomunikasi dengan client-nya (web browser) mempunyai protokol sendiri, yaitu HTTP (hypertext transfer protocol).
Dengan protokol ini, komunikasi antar web server dengan client-nya dapat saling dimengerti dan lebih mudah. Seperti telah dijelaskan diatas, format data pada world wide web adalah SGML. Tapi para pengguna internet saat ini lebih banyak menggunakan format HTML (hypertext markup language) karena penggunaannya lebih sederhana dan mudah dipelajari. Kata HyperText mempunyai arti bahwa seorang pengguna internet dengan web browsernya dapat membuka dan membaca dokumen-dokumen yang ada dalam komputernya atau bahkan jauh tempatnya sekalipun.
Hal ini memberikan cita rasa dari suatu proses yang tridimensional, artinya pengguna internet dapat membaca dari satu dokumen ke dokumen yang lain hanya dengan mengklik beberapa bagian dari halaman-halaman dokumen (web) itu. Proses yang dimulai dari permintaan webclient (browser), diterima web server, diproses, dan dikembalikan hasil prosesnya oleh web server ke web client lagi dilakukan secara transparan. Setiap orang dapat dengan mudah mengetahui apa yang terjadi pada tiap-tiap proses. Secara garis besarnya web server hanya memproses semua masukan yang diperolehnya dari web clientnya.



Web Server Apache
Apache merupakan web server yang paling banyak dipergunakan di Internet. Program ini pertama kali didesain untuk sistem operasi lingkungan UNIX. Namun demikian, pada beberapa versi berikutnya Apache mengeluarkan programnya yang dapat dijalankan di Windows NT. Apache mempunyai program pendukung yang cukup banyak. Hal ini memberikan layanan yang cukup lengkap bagi penggunanya. Beberapa dukungan Apache :
1. Kontrol Akses.
Kontrol ini dapat dijalankan berdasarkan nama host atau nomor IP
2. CGI (Common Gateway Interface)
Yang paling terkenal untuk digunakan adalah perl (Practical Extraction and Report Language), didukung oleh Apache dengan menempatkannya sebagai modul (mod_perl)
3. PHP (Personal Home Page/PHP Hypertext Processor);
Program dengan metode semacam CGI, yang memproses teks dan bekerja di server. Apache mendukung PHP dengan menempatkannya sebagai salah satu modulnya (mod_php). Hal ini membuat kinerja PHP menjadi lebih baik
4. SSI (Server Side Includes)
Web server Apache mempunyai kelebihan dari beberapa pertimbangan di atas :
1. Apache termasuk dalam kategori freeware.
2. Apache mudah sekali proses instalasinya jika dibanding web server lainnya seperti NCSA, IIS, dan lain-lain.
3. Mampu beroperasi pada berbagai platform sistem operasi.
4. Mudah mengatur konfigurasinya. Apache mempunyai hanya empat file konfigurasi.
5. Mudah dalam menambahkan peripheral lainnya ke dalam platform web servernya.
Fasilitas atau ciri khas dari web server Apache adalah :
1. Dapat dijadikan pengganti bagi NCSA web server.
2. Perbaikan terhadap kerusakan dan error pada NCSA 1.3 dan 1.4.
3. Apache merespon web client sangat cepat jauh melebihi NCSA.
4. Mampu di kompilasi sesuai dengan spesifikasi HTTP yang sekarang.

5. Apache menyediakan feature untuk multihomed dan virtual server.
6. Kita dapat menetapkan respon error yang akan dikirim web server dengan menggunakan file atau skrip.
7. Server apache dapat otomatis berkomunikasi dengan client browsernya untuk menampilkan tampilan terbaik pada client browsernya. Web server Apache secara otomatis menjalankan file index.html, halaman utamanya, untuk ditampilkan secara otomatis pada clientnya.
8. Web server Apache mempunyai level-level pengamanan.
9. Apache mempunyai komponen dasar terbanyak di antara web server lain.
10. Ditinjau dari segi sejarah perkembangan dan prospeknya, Apache web server mempunyai prospek yang cerah. Apache berasal dari web server NCSA yang kemudian dikembangkan karena NCSA masih mempunyai kekurangan di bidang kompatibilitasnya dengan sistim operasi lain. Sampai saat ini, web server Apache terus dikembangkan oleh tim dari apache.org.
11. Performasi dan konsumsi sumber daya dari web server Apache tidak terlalu banyak, hanya sekitar 20 MB untuk file-file dasarnya dan setiap daemonnya hanya memerlukan sekitar 950 KB memory per child.
12. Mendukung transaksi yang aman (secure transaction) menggunakan SSL (secure socket layer).
13. Mempunyai dukungan teknis melalui web.
14. Mempunyai kompatibilitas platform yang tinggi.
15. Mendukung third party berupa modul-modul tambahan.

(Langkah ini dijalankan dengan tujuan untuk membuat sub domain dari website awal yang sudah kita miliki. MIsalnya dari website www.agungprasetyo.net, kita ingin menambah sub domain websiteku.agungprasetyo.net dan seterusnya.)
1. pertama-tama, buatlah folder untuk menampung file-file html yang nantinya akan diupload.
root@library:~#mkdir /var/www/website
2. Selanjutnya, kita akan melakukan konfirgurasi di apache. Masuk ke direktori sites-available
root@library:~#cd /etc/apache2/sites-available
3. Jika dilihat, disana ada file default dan default-ssl yang merupakan file awal terbantuknya apache2. Sekarang buat file baru
root@library:/etc/apache2/sites-available#nano websiteku

4. Tambahkan isi file berikut :
ServerAdmin admin@agungprasetyo.net
ServerName website.agungprasetyo.
ServerAlias website.agungprasetyo.net
DocumentRoot /var/www/website
ErrorLog /var/log/apache2/error-website.log
CustomLog /var/log/apache2/access-website.log combined

Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
5. Lakukan penyimpanan pada file tersebut
6. Karena kita ingin menambahkan nama baru, maka kita tidak perlu menonaktifkan yang lama. Kita tinggal mengaktifkan saja nama yang baru saja kita buat.
root@library:/etc/apache2/sites-available#a2ensite websiteku
Enabling site website.
Run ‘/etc/init.d/apache2 reload’ to activate new configuration!
7. Hasilnya bisa anda lihat dengan perintah
root@library:/etc/apache2/sites-available#ls -l ../sites-enabled/
lrwxrwxrwx 1 root root 26 2009-03-23 11:39 000-default -> ../sites-available/default
lrwxrwxrwx 1 root root 24 2009-03-23 14:35 websiteku -> ../sites-available/websiteku
8. Jika sudah tampak, maka sekarang lakukan perintah
root@library:/etc/apache2/sites-available#/etc/init.d/apache2 reload
* Reloading web server config apache2 [Mon Mar 23 14:48:08 2009] [warn] VirtualHost 212.166.10.230:80 overlaps with VirtualHost 212.166.10.230:80, the first has precedence, perhaps you need a NameVirtualHost directive
[Mon Mar 23 14:48:08 2009] [warn] VirtualHost 212.166.10.230:80 overlaps with VirtualHost 212.166.10.230:80, the first has precedence, perhaps you need a NameVirtualHost directive
[Mon Mar 23 14:48:08 2009] [warn] NameVirtualHost *:80 has no VirtualHosts
9. Ternyata muncul masalah, yaitu ada error spt diatas. Saya juga sempat mengalami hal ini, hingga sekitar 5 jam. Akhirnya soluasi dari masalah ini ketemu, yaitu anda harus mengeset juga ports.conf.
10. Sekarang menuju halaman apache2 dan buka file ports.conf
root@library:/etc/apache2/sites-available#cd ..
root@library:/etc/apache2/sites-available#nano ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
NameVirtualHost *:80
Listen 80

# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
11. Gantilah NameVirtualHost *:80 menjadi 212.166.10.230:80 sehingga hasilnya seperti dibawah ini
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
NameVirtualHost 212.166.10.230:80
Listen 80

# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
12. Lakukan penyimpanan dan lakukan kembali perintah reload apache :
root@library:/etc/apache2# /etc/init.d/apache2 reload
* Reloading web server config apache2 [ OK ]
13. Oke, proses sudah tidak ada error lagi, sub domain anda sudah berhasil
14. Sekarang buka browser dan ketikkan : http://websiteku.agungprasetyo.net pada browser anda.
Virtual Host merupakan cara untuk mengatur banyak website atau URL di dalam satu mesin atau satu IP. Misalkan kita mempunyai banyak domain tapi hanya mempunyai 1 IP public atau 1 server. Cara untuk mengatasi masalah itu adalah dengan cara membuat virtualhost yang ada di settingan apachenya. Virtual Host bisa anda gunakan setelah anda menginstall package-package apache dan sudah pasti web server anda sudah berjalan dengan baik.
Sekarang kita langsung saja masuk ke dalah konfigurasi. Misalkan saya mempunya 2 buah domain [aminudin.net dan kelelawar.net] saya kebingungan karena saya hanya mempunyai 1 server, solusinya adalah anda harus mengarahkan domain tersebut ke IP server kita untuk contoh silahkan baca http://aminudin.net/?p=230 . kemudian seterusnya konfigurasi di sisi server nya kita lakukan konfigurasi virtualhost anda edit file yang berada di /etc/apache2/http.conf. anda masukan text virual host,sebagai contoh begini :

ServerAdmin webmaster@aminudin.net
ServerName aminudin.net
DocumentRoot /home/amin
CustomLog /hom/amin/log/aminudin.net.log combined


ServerAdmin webmaster@kelelawar.net
ServerName kelelawar.net
DocumentRoot /home/kelelawar
CustomLog /home/kelelawar.net/log/kelelawar.net.log combined
Penjelasan:
<<–Awal dari virtual host ServerAdmin webmaster@kelelawar.net <<– Nama admin domain ServerName kelelawar.net <<– Nama domain yang akan masuk ke server kita DocumentRoot /home/kelelawar <– File domain kelelawar.net
CustomLog /home/kelelawar.net/log/kelelawar.net.log combined <<– Dimana File Log website diletakan
<<– Penutup VirtualHost

# untuk file log, anda membuat terlebih dahulu file kosong
# ex: amin@root~#touch /home/kelelawar/log/kelelawar.net.log
Berikutnya yang harus anda lakukan adalah restart apache:
amin@root~#/etc/init.d/apache2 restart
Jadi secara simple adalah VirtualHost itu adalah belokan dimana directory masing2 domain tersebut.
Jika anda mempunya 1 domain atau 2 masih bisa dibilang belum memusingkan untuk configurasi file http.conf-nya. Tetapi jika anda sudah mempunya banyak domain diarahkan ke 1 server, misal anda mempunya 10 domain hayoooo gimana? saya juga pernah mengalami hal serupa, file di http.conf itu banyak sekali nama domain dan hampir serupa bentuknya, bisa lelah mata kita melihatnya. Untuk masalah seperti itu anda sebaiknya membuat file configuration yang baru. Coba anda membuat directory dimana file konfigurasi domain tersebut berada.
ex: /home/vhost/aminudin.net.conf
/home/vhost/kelelawar.net.conf
Setelah itu coba anda pindahkan semua konfigurasi masing2 domain ke file konfigurasi domain tersebut, misal vhost aminudin.net di pindah ke /home/vhost/aminudin.net.conf. Setelah itu anda edit file yang bernama apache2.conf yang berada di /etc/apache2/apache2.conf kemudian anda cari baris yang ada text Include /etc/apache2/http.conf kemudian anda tambahkan baris di bawahnya itu sebagai contoh anda masukan Include /home/vhost/aminudin.net.conf dan Include /home/vhost/kelelawar.net.conf. kemudian karena file http.conf itu sudah kosong filenya maka anda kasih # di text Include /etc/apache2/http.conf menjadi #Include /etc/apache2/http.conf. tanda # itu menandakan bahwa yang berada di baris tersebut hanya komentar jadi tidak di tanggapi oleh apache tersebut. Kemudian setelah anda beres ini itu maka tinggal anda melakukan restart apache nya [amin@root~#/etc/init.d/apache2 restart].
Selesai….. Sekarang file virtualhost anda telah tersusun dengan baik. Jika anda ingin konfigurasi ga perlu pusing2 lagi tinggal pilih aja file konfigurasi salah satu domain.

No comments:

Post a Comment