Pada bab ini Anda mempelajari bagaimana menjadikan sebuah komputer sebagai
web server yang dapat diakses dari komputer lain.
Pembaca akan memahami kelebihan Apache server versi 2.0 serta direktif-
direktif yang digunakan untuk membangun web server, termasuk bagaimana
menggunakan tool grafis untuk mengkonfigurasi Apache.
Anda telah menyelesaikan konfigurasi pada server Diskless, FileKontrol dan
Proxy. Bagian akhir buku ini akan difokuskan pada konfigurasi server WebMail
sehingga layanan email,web, ftp dan ssh dapat berjalan dengan baik. Artinya,
sebuah jaringan perkantoran yang nyata telah selesai dan ini menjadi modal awal
yang sangat bermanfaat bagi Anda dalam mengarungi dunia jaringan komputer.
Anda pernah berkunjung ke http://www.yahoo.com, http://www.redhat.com
atau yang lain? Jika Anda pernah memanfaatkan internet, pasti Anda pernah
mengunjungi apa yang disebut situs web atau homepage.
Tahukan Anda apa yang dimaksud dengan http://www.redhat.com? Itulah yang
dinamakan sebagai alamat web site atau URL (Uniform Resource Locator).
Hampir semua perusahaan saat ini menggunakan web site sebagai tempat
promosi, baik web site milik sendiri maupun menumpang pada web site
perusahaan lain. Masuklah ke http://www.yahoo.com, Anda akan menemukan
banyak iklan di sana, mulai iklan buku sampai iklan pakaian dalam. Mengapa
semua itu terjadi? Jawabnya karena software yang bernama web server yang
bekerja di belakang layar memberikan informasi yang diminta oleh
pengunjungnya.
Mungkin Anda bertanya bagaimana membuat web server seperti itu, bab ini akan
mengupas secara detail cara melakukannya.
Mengenal Apache
Linux edhat memang sebuah distribusi Linux yang cukup lengkap. Untuk
membangun web server, Anda dapat menggunakan Apache yang hadir di dalam
CD Instalasi Linux Redhat 9. Apache adalah software web server yang paling
banyak digunakan saat ini. Sekarang Apache telah mencapai versi 2.0 setelah
memperoleh sukses besar pada versi 1.3.
Server HTTP Apache adalah web server open source yang tangguh dan gratis
yang dikembangkan oleh Apache Software Foundation (http://www.apache.org)
File konfigurasi default Apache versi 2, yaitu file/etc/httpd/conf/httpd.conf, dapat
bekerja seperti versi 1.3. Dapat dikatakan bahwa tidak terjadi perubahan
mendasar di dalam file konfigurasi tersebut. Meskipun begitu, beberapa
perbedaan penting antara server HTTP Apache versi 1.3 dan 2.0 tetap ada,
misalnya versi 2.0 menyertakan fitur-fitur berikut:
1. API baru. Modul-modul Apache menggunakan set Application Progamming
Interfaces (API) baru yang lebih tangguh. Karena itu, modul-modul yang
dibuat untuk Apache versi 1.3 tidak dapat berjalan pada Apache versi 2.0.
2. Filtering. Modul-modul Apache dapat bertindak sebagai content filter.
3. Dukungan Apv6. Apache telah mendukung format IP address masa depan,
Ipv6.
4. Direktif-direktif yang disederhanakan. Beberapa direktif yang pema-
kaiannya sulit telah dihilangkan serta beberapa direktif lain telah
disederhanakan.
5. Respon error Multilingual. Pada saat menggunakan dokumen Server Side
Include (SSI), halaman respon yang telah disesuaikan dengan kebutuhan
dapat disampaikan dalam banyak bahasa.
6. Dukungan Multiprotocol. Apache mendukung banyak protokol.
Lebih lanjut Anda dapat mengunjungi situs http://httpd.apache.org/docs-2.0/.
Apache versi 2.0 juga melakukan sedikit perubahan pada system file, yaitu:
1. Direktori konfigurasi baru, yaitu /etc/httpd/conf.d/ telah ditambahkan.
Direktori baru ini digunakan untuk menyimpan file-file konfigurasi untuk
modul-modul yang dipaket secara terpisah, seperti mod_ssl, mod_perl, dan
php. Server diminta memuat file-file konfigurasi dengan menggunakan
direktif Include conf.d/*.conf di dalam file konfigurasi utama Apache,
/etc/httpd/conf/httpd.conf.
2. Dipindahnya program ab dan logresolve. Kedua utilitas ini dipindahkan dari
direktori/usr/sbin/ dan diletakkan di dalam /usr/bin.
3. Perintah dbmmanage telah diganti dengan htdbm.
4. File konfigurasi logrotate telah diubah dari /etc/logrotate.d/apache menjadi
/etc/logrotate.d/httpd.
Server HTTP Apache disertai dokumentasi lengkap yang juga dapat diinstal
bersamaan atau setelah instalasi Apache. Dokumen tersebut dapat dibaca
melalui web browser dengan menuliskan alamat http:/localhost/manual. Manual
ini berisi suatu daftar dan deskripsi lengkap semua opsi-opsi konfigurasi..
Menjalankan Apache
Setelah instalasi, Anda dapat mencoba server Apache, tidak perlu melakukan
konfigurasi tambahan sama sekali. Linux Redhat 9 menyediakan script
/etc/rc.d/init.d/httpd sehingga dapat diakses menggunakan program
/sbin/service, baik untuk menjalankan, mematikan maupun merestart apache.
Untuk memulai server apache, Anda dapat menulis perintah berikut sebagai user
root :
service httpd start
Sedangkan untuk menghentikan server yang telah berjalan cukup menulis:
service httpd stop
Anda dapat menggunakan opsi restart untuk mematikan kemudian sekaligus
mengaktifkan kembali server Apache:
service httpd restart
Pada suatu waktu, Anda mungkin melakukan perubahan terhadap file konfigurasi
utama, httpd.conf, Anda tentunya harus merestart server apache. Namun, jika
pada saat itu banyak user yang mengakses server, tindakan tersebut akan
memutuskan koneksi beberapa user. Anda dapat menyertakan opsi reload untuk
memuat konfigurasi terbaru tanpa harus merestart server Apache.
service httpd reload
Konfigurasi Server
File konfigurasi server Apache adalah /etc/httpd/conf/httpd.conf. File ini
mempunyai baris-baris komentar yang cukup informative, menjelaskan apa yang
harus ditulis pada suatu baris konfigurai. Secara default, konfigurasi yang
disertakan setelah instalasi dapat berjalan dengan baik, namun beberapa direktif
harus diubah untuk mendapatkan konfigurasi sesuai kebutuhan.
Catatan
File konfigurasi httpd.conf merupakan file yang cukup besar terdiri lebih
dari seribu baris. Buku ini tidak akan menerangkan semua direktif yang
terdapat di dalam file tersebut, hanya beberapa direktif yang sering
digunakan uang akan dikupas disini.
Pembuatan konfigurasi Apache dilakukan dengan mengedit file httpd.conf
kemudian menjalankan perintah service httpd yang diikuti oleh salah satu opsi
reload, restart atau stop.
Sebelum mengubah file https.conf, sebaiknya Anda membuat salinan file
konfigurasi asli. Pembuatan backup ini memudahkan perbaikan dari kesalahan-
kesalahan yang mungkin muncul setelah file tersebut diubah. Jika terjadi
kesalahan dan web server tidak bekerja dengan benar, pada kondisi ekstrim,
Anda dapat memanfaatkan file backup tersebut.
Selanjutnya lihat file log error /var/log/httpd/error_log. File ini tidak mudak
untuk dibaca, tergantung dari pengalaman Anda sebagai pengelola web server.
Jika telah berpengalaman, entri-entri catatan error di dalam file ini akan
memberikan informasi penting mengenai penyebab terjadinya error.
Daftar Direktif
File konfigurasi httpd.conf terdiri dari ratusan direktif. Berikut ini adalah
beberapa direktif yang sering digunakan (direktif lain dapat Anda pelajari pada
manual yangdisertakan Apache)
1. ServerRoot
ServerRoot adalah direktori tertinggi dimana file-file server berada. Baik
server secure maupun non-secure mengarahkan direktif ini ke direktori
“/etc/httpd”.
2. Pidfile
Pidfile memberikan nama file dimana server merekam ID prosesnya (PID).
Secara default PID diset /var/run/httpd.pid.
3. Timeout
Timeout mendefinisikan jumlah waktu dalam detik yang digunakan oleh
server Apache untuk menunggu tanda terima dan transmisi selama
komunikasi. Secara teknis, timeout mendefinisikan berapa lama server
akan menunggu untuk menerima permintaan GET, berapa lama server
akan menunggu untuk menerima paket-paket TCP pada permintaan POST
atau PUT. Defaultnya, Timeout diset 300 detik (5 menit) yang
mencerminkan keadaan umum di Internet.
4. KeepAlive
KeepAlive menentukan apakah server membolehkan lebih dari satu
permintaan per koneksi. Direktif ini dapat digunakan untuk mencegah
adanya koneksi yang menghabiskan resource server terlalu besar.
Defaultnya direktif ini diset off.
5. MaxKeepAliveRequests
per koneksi Persistent. Umumnya, administrator server memberikan nilai
100.
6. KeepAliveTimeout
KeepAliveTimeout menentukan jumlah waktu dalam detik yang akan
digunakan server untuk menunggu setelah permintaan terakhir dilayani
sebelum koneksi ditutup. Nilai default direktif ini adalah 15 detik.
7. MinSpareServers and MaxSpareServers
Web server Apache secara dinamis melakukan penyesuaian terhadap beban
akses yang dirasakan dengan memanfaatkan sejumlah proses server
cadangan berdasarkan beban tersebut. Apache memeriksa jumlah proses
yang sedang menanti suatu permintaan dan menghentikan beberapa proses
server jika terdapat lebih dari nilai MaxSpareservers atau membuat
beberapa proses jika kurang dari nilai MinSpareServers.
Defaultnya, nilai MinSpareservers adalah 5 dan nilai MaxSpareServers
adalah 20. Sebaiknya Anda memberikan nilai yang terlalu besar pada
MacSpareServers yang dapat ,mengakibatkan server down seketika saat
diserbu pengunjung.
8. StartServers
StartServers memungkinkan Anda menentukan jumlah proses yang dimiliki
server yang dibuat pada saat mulai berjalan. Karena web server secara
dinamis menghentikan dan membuat proses server berdasarkan beban
yang diterima, Anda tidak perlu mengubah direktif ini.
9. MaxClients
MaxClients digunakan untuk menentukan batasan terhadap jumlah total
proses server atau jumlah client yangs ecara bersamaan dapat terhubung
ke server. Tujuan utama direktif ini adalah menjaga agar server Apache
berjalan baik dan tidak crash dengan system Linux. Pada server-server
yang sibuk, nilai ini diset cukup tinggi. Nilai defaultnya adalah 150. Anda
tidak dianjurkan memberikan nilai lebih dari 256.
10. MaxRequestPerChild
MaxRequestPerChild menentukan jumlah total permintaan setiap proses
server anak yang aktif sebelum dihentikan, Tujuan utama disediakannya
direktif ini adalah untuk menghindari proses yang berjalan lama dan
menghabiskan memory. Nilai default MaxRequestPerChild adalah 1000.
11. Listen
Direktif Listen menentukan nomor port pada web server yang digunakan
untuk menerima permintaan dari client. Secara default, server Apache
menerima koneksi melalui port 80 untuk komunikasi web non–secure dan
port 443 untuk komunikasi web yang secure.
Jika server Apache dikonfigurasi untuk mendengar pada port di bawah
1024, hanya user root yang dapat menjalankan server Apache. Jika nomor
port yang diberikan di atas 1024 maka user httpd dapat menjadi user
reguler Apache.
Jika mesin dimana server Apache berjalan mempunyai lebih dari 1
interface, maka direktif ini dapat digunakan untuk menentukan interface
mana yang akan mendengar koneksi dari client. Dengan cara ini, misalnya
Anda membatasi hanya koneksi yang melalui Eth0 (192.168.0.254) yang
dapat menerima koneksi.
12. Include
Include membolehkan file-file konfigurasi lain disertakan pada runtime.
Path file-file konfigurasi ini dapat absolut atau relatif terhadap ServerRoot.
Untuk server yang menggunakan modul yang dipaket terpisah seperti
mod_ssl, mod_perl dan php, direktif berikut harus ditempatkan di dalam
Section 2:Global Environment
Include conf.d/*.conf
13. LoadModule
LoadModule digunakan