HTTP Server

Dari IgosCenter

Langsung ke: Navigasi, Cari

[I Made Wiryana - netadm-linux-single.pdf]

Daftar isi

HTTP Server Apache2

Instalasi server Web

Paket program web server dapat kita ambil dari CD instalasi yaitu menggunakan Apache Web Server, yaitu Apache versi 1.3.12. Paket Apache WebServer dapat diinstal dengan menggunakan perintah sebagai berikut :

sudo apt-get install apache2

Ketika instalasi selesai maka file-file yang perlu di perhatikan adalah:

httpd.conf
access.conf
srm.conf

masing-masing file diatas akan dibahas kemudian.

Konfigurasi Apache

File httpd.conf Berikut adalah isi dari file httpd.conf :

  • ServerType. Konfigurasi yang menerangkan server, apakah dijalankan melalui inetd atau dijalankan secara berdiri sendiri. Bila secara berdiri sendrii, maka server akan dijalankan secara manual.
  • ServerRoot. Suatu path directory tempat disimpannya file konfigurasi, file error.
  • PidFile. File yang menyimpan nomor proses dari apache yang dijalankan.
  • ResourceConfig dan AccessConfig. Isi dari file tersebut adalah konfigurasi untuk directory sumber (access.conf) dan konfigurasi izin akses (srm.conf). Kedua file tersebut adalah bersifat tambahan (optional) , karena keduanya dapat diletakkan di httpd.conf, ataupun dapat diletakkan di masing-masing file (access.conf dan srm.conf)
  • Timeout. Batas waktu yang digunakan untuk suatu menganggap suatu koneksi terputus, yaitu ketika tidak ada respon dari client.
  • KeepAlive. Kemampuan server menerima request secara simultan yang berasal dari satu koneksi.
  • MaxKeepAliveRequests. Jumlah request maksimum yang diterima server secara simultan.
  • KeepAliveTimeout. Waktu yang ditentukan untuk menunggu request selanjutnya dari satu koneksi.
  • MinSpareServers dan MaxSpareServers. Jumlah server yang dibutuhkan untuk melayani setiap request yang masuk.(biasa digunakan untuk situs web yang sangat sibuk)
  • StartServers. Jumlah server yang dijalankan oleh apache untuk inisialisasi ketika apache pertama kali di eksekusi.
  • MaxClients. Jumlah koneksi yang diizinkan secara simultan di server.
  • MaxRequestsPerChild. Jumlah request yang akan dilayani oleh child server sebelum child server tersebut dimatikan.
  • BindAddress- Server akan otomatis menerjemahkan setiap alamat semua alamat ip yang ada di server Port. Port yang akan di "dengarkan" oleh apache web server.
  • User dan Group. User dan group yang menjalankan apache web server.
  • ServerAdmin. Alamat email dari administrator web server.
  • ServerName. Nama server yang disesuaikan dengan FQDN (Full Qualified Domain Name), berfungsi sebagai nama dari web server kita.
  • ErrorLog. Direktori dan nama file dimana kita menempatkan error log dari apache.
  • LogLevel. Jenis pesan-pesan log yang akan dicatat oleh web server. Ada beberapa kategori yang akan dicatat ke dalam log file, yaitu emerg (emergency), alert, crit (critical), errors, warn, debug.
  • LogFormat. Bagian ini menenetukan format log file dan juga memberikan "nickname" untuk format tersebut. Bagian ini telah diberikan secara default oleh apache, dan sebaiknya tidak usah dirubah (kecuali anda secara pasti tahu apa yang anda lakukan :) )
  • CustomLog. Log yang di konfigurasikan untuk mencatat setiap access request dari client. Juga digunakan untuk mencatat secara default konfigurasi virtualhost (lihat virtualhost)
  • ServerSignature. Web Server Signature yang biasa muncul ketika file yang dicari tidak ditemukan dan pada saat ftp. (on,off dan email)
  • UseCanonicalName. Bagian ini mengkonfigurasikan server apache agar membuat referensi sendiri menggunakan ServerName dan Port sesuai yang ada di httpd.conf, apabila diset off, maka server akan merespons sesuai dengan request dari client.
  • HostnameLookups. Perintah ini akan melog alamat IP dari setiap client yang mengakses server kita. Direkomendasikan bagian ini di set off untuk site2 yang sangat sibuk, karena akan dapat membuat log file menjadi besar.

File srm.conf File srm.conf juga digunakan untuk mengatur masalah yang berhubungan dengan directory, DocumentRoot, UserDir, DirectoryIndex , MIME (Multi purpose Internet Mail Extension), ScriptAlias, CGI-Script dan definisi-definisi dari extension lainnya, misal PHP, Perl dan lain-lain. Isi dari srm.conf adalah :

  • DocumenRoot. Path dari direktori yang berisi file-file dokumen utama dari situs kita.
  • UserDir. Direktori untuk user yang biasanya terletak di home directory dari user tersebut. URL yang digunakan untuk mengakses adalah http://server.kita.com/ ̃user <– menggunakan tanda ̃.
  • DirectoryIndex. File yang pertama kali akan diakses oleh client ketika client akan mengakses web server kita.
  • FancyIndexing. Suatu cara menampilkan isi dari suatu directory di server. Menggunakan fancy style atau tidak. Setelah konfigurasi ini biasanya diikuti dengan mendefinisikan path cari icon-icon yang akan digunakan untuk indexing.
  • AccessFileName. Mendefinisikan akses file yang akan digunakan untuk memproteksi suatu direktori. Biasanya dinamakan .httaccess (tanda . Berarti file tersebut di hidden dan untuk kepentingan sekuritas, nama file httaccess diganti)
  • Alias. Directory alias yang biasa digunakan untuk beberapa direktori khusus, misalkan cgi-bin. DefaultType. Default type dari setiap dokumen yang ada di webserver kita.

File access.conf File ini digunakan untuk mengatur hak pengaksesan di Web Server atau lebih sering disebut ACF (Access Control File). Contoh :

<Directory /> 
Options FollowSymLinks
AllowOverride None 
</Directory>
<Directory "/usr/local/apache/htdocs">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
<Directory "/usr/local/apache/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

Option-option yang umum digunakan untuk hak akses direktori adalah :

  • Indexes : Perizinkan setiap indexing dari suatu direktori, seperti AddDescription, AddIcon, AddIconByEncoding, AddIconByType, *DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, dan ReadmeName
  • Limit : Perizinan untuk mengakses suatu path disesuaikan dengan hostnamenya, seperti allow, deny dan order.
  • Option : Perizinan untuk menggunakan option-option yang ada dalam masing-masing direktori. Contohnya Option dan XbitHack.

Perhatian : Apabila pada httpd.conf baris dibawah di berikan comment (#) berarti semua konfigurasi dari srm.conf dan access.conf diletakkan di file httpd.conf.

#ResourceConfig conf/srm.conf
#AccessConfig conf/access.conf

Menjalankan server Web

Untuk menjalankan Apache yang perlu kita lakukan adalah :

/etc/init.d/apache2 start

Apabila kita mengadakan perubahan file-file konfigurasi maka apache harus di-restart terlebih dahulu agar perubahan yang kita lakukan dapat memberikan pengaruh.

/etc/init.d/apache2 restart

Untuk lebih lengkap melihat pilihan-pilihan dari apachectl

apachectl --help

File httpd yang di hasilkan dari proses instalasi adalah program daemon yang membuka port 80 (default) untuk LISTEN (mendengar) setiap request untuk web. Untuk dapat memanggil web server adalah sebagai berikut :

http://namec

jika nama web server kita adalah namec Apabila kita menggunakan port yang tidak dari biasanya (misalkan 8000) maka pemanggilannya sebagai berikut :

http://namec:8000

Atau pemanggilannya dapat menggunakan IP Address dari mesin yang bersangkutan, misal :

http://192.168.0.1 

jika IP Address webserver kita 192.168.0.1

Praktikum: WEB SERVER

Bahan:

  • VirtualBox OSE (install dari Ubuntu Software Center atau Synaptic)
  • ubuntu-10.04-server-i386.iso
  • jaringan (komputer host harus punya IP, gambar dibuat dengan host terhubung LAN)
local server

Tahap:

  • install ubuntu-10.04-server-i386.iso di VirtualBox OSE
  • tambahakan di storage gambar CD iso ubuntu-10.04-server-i386.iso
  • namakan UbuntuServer
  • cukup 128M RAM saja
  • set network VirtualBox OSE ke Bridge
  • tidak pakai proxy
  • pilih aplikasi DNS, DHCP, Apache, OpenSSH, Samba
  • sampai instalasi selesai, reboot
  • remove storage gambar CD ubuntu-10.04-server-i386.iso

Percobaan local server:

klien jaringan
  • nyalakan UbuntuServer, masukan user, password
  • ketik w3m http://localhost
  • bila muncul "It works !", berarti Apache2 sudah berjalan di server secara lokal
  • ketik q untuk keluar dari w3m http://locahost

Percobaan klien jaringan :

  • ketik: sudo ifconfig eth0 up
  • ketik: sudo dhclient
  • lihat IP yang didapatkan oleh UbuntuServer, misalnya: 192.168.1.20
  • pindah ke host (seperti pada gambar), jangan dimatikan VirtualBox OSE
  • buka browser, di alamat URL (nanti ganti 192.168.1.20 dengan IP yang didapatkan UbuntuServer) ketik misalnya: http://192.168.1.20
  • bila muncul "It works !", berarti Apache2 sudah berjalan di server secara jaringan

Catatan:

  • bila menggunakan XAMPP , Apache2 native harus mati, hanya boleh 1 web server di host directory
  • keunggulan Apache2 (LAMPP) adalah otomatis hidup saat komputer hidup
  • masalahnya direktory skrip disebar dibawah /var tidak mudah dibuat chroot
  • keunggulan XAMPP adalah skrip web dan MySQL ada dibawah satu direktory yaitu /opt/xampp , mudah di chroot
  • masalahnya XAMPP tidak otomatis, harus penugasan
  • bisa coba http://saung.igoscenter.org/XAMPP

Kontributor: Estiyand

(c) Igos Center Bandung, 2009