Memelihara Web Server Anda
Pajar Rachman & Onno W. Purbo
(CNRG@itb.ac.id)
Jika anda memberikan pelayanan di Internet melalui Web server yang dimiliki maka web server tersebut akan membutuhkan beberapa pemeliharaan. Dua hal penting yang harus dilakukan dalam pemeliharaan web server ini adalah secara periodik memperbaharui dokumen html yang disimpan serta mengecek file-file log. Disamping itu akan ada kemungkinan untuk webmaster untuk mengatur dan merubah disk serta struktur direktori pada disk tersebut. Untuk itu diperlukan cara-cara tertentu untuk melakukan perubahan tersebut tanpa merubah semua hyperlink yang digunakan pada dokumen html di web server.
1. Script untuk Menjalankan Server
Satu hal yang penting dalam memelihara web server, adalah membuat web server ini langsung dijalankan ketika komputer server direboot. Sebagai contoh dalam unix, untuk FreeBSD perlu ditambahkan beberapa baris perintah pada suatu file yang disebut rc.local untuk membuat web server ini secara otomatis dijalankan pada saat direboot. Tambahkan baris dibawah ini ke dalam file tersebut :
[ if –x /usr/local/httpd/httpd ] && /usr/local/httpd/httpd && echo “httpd” &
Jika webmaster tidak ingin merubah-rubah file rc.local ini, ada cara lain, yaitu dengan membuat suatu file yang bisa dieksekusi dan meletakannya pada direktori /usr/local/etc. Server akan mengecek isi direktori ini dan akan mengeksekusi script-script yang ada di dalamnya pada saat direboot. Buatlah satu file dengan nama ncsa.sh, yang isinya :
#!/bin/sh
[ if –x /usr/local/httpd/httpd ] && /usr/local/httpd/httpd && & echo “httpd” &
Secara default mode dari file tersebut adalah rw-r--r--. Untuk membuat file tersebut dapat dieksekusi maka ubahlah modenya dengan perintah chmod.
# chmod 700 ncsa.sh
Maka akan menghasilkan file dengan mode rwx------, read-write-excecution
Perhatikan mode suatu file sebenarnya terdiri dari 3 kelompok, yaitu kelompok owner, group dan other. Mode menunjukan hak seorang user terhadap file tersebut. Maksud dari 700 adalah seperti ini, setiap r, w, atau x dilambangkan dengan 1 dan – adalah 0. Mode rwx------ akan menghasilkan 111000000, dengan pemisahan terhadap owner, group dan other akan menghasilkan 700 dalam biner, ini menunjukan hanya pemilik httpd saja yang memiliki fasilitas read, write, dan eksekusi sedangkan baik group maupun other tidak memiliki hak apapun 

2. Memperbaharui Dokumen HTML
Untuk memperbaharui semua dokumen HTML yang tersimpan pada web server tidak perlu bagi Webmaster untuk menghentikan atau me-reboot jalannya web server. Secara sederhana, Webmaster dapat langsung menyimpan dokumen HTML yang baru atau melakukan perubahan atas dokumen pada web server yang sedang jalan. Bahkan beberapa Webmaster melakukan pengeditan dokumen HTML secara langsung ketika web server-nya sedang online di Internet. Bergantung pada sisa harddisk yang tersisa, beberapa webmaster mempergunakan dua cara dalam memperbaharui dokumen, yaitu secara offline dan secara online di internet.
Pengembangan secara offline maksudnya semua pengembangan dokumen dilakukan pada harddisk local tanpa melibatkan web server, dengan menggunakan URL yang relatif. Penggunaan URL relatif ini adalah untuk melihat tampilan dari dokumen HTML sebelum dimasukan ke web server. Ketika telah siap untuk ditampilkan pada umum, maka semua dokumen di-upload ke web server, dengan asumsi bahwa sistem yang digunakan adalah sama. Untuk backup maka sebaiknya dokumen yang lama tetap disimpan, terutama untuk berjaga-jaga jika seandainya dokumen yang baru mengalami kerusakan. 
% cd /usr/local/httpd
% tar cpvfz data_old.tar.gz data
Perintah di atas dilakukan jika direktori data tersebut adalah direktori yang digunakan sebagai DocumentRoot.
3. Merubah Struktur Direktori.
Kadang-kadang webmaster harus memindahkan sebagian dari dokumen dikarenakan sisa dari disk sudah tidak mencukupi lagi atau karena akan berganti sistem. Disinilah option Alias akan sangat berguna untuk menjaga agar link yang telah dibuat tidak perlu diganti atau disesuaikan dengan perubahan yang ada.
Sebagai contoh akan diambil suatu kondisi dimana disk telah penuh dan berencana untuk membagi data HTML ke dalam disk yang baru. Jika web server yang digunakan memiliki letak DocumentRoot pada /usr/local/httpd/data dan di dalam direktori tersebut terdapat misal beberapa direktori untuk bagian yang berbeda. Webmaster merencanakan untuk memindahkan satu direktori ke dalam disk baru yang dimounting dengan nama /data/www, maka langkah-langkah yang perlu dilakukan adalah:
1.	Buatlah direktori dengan nama yang sama dengan direktori yang akan dipindahkan pada /data/www, misalkan nama direktorinya adalah unix
2.	Pindahkanlah isi /usr/local/httpd/data/unix tersebut ke /data/www/unix/.
3.	Tambahkan option Alias pada file konfigurasi srm.conf untuk menunjukan letak direktori unix ini.
Alias /unix/ /data/www/unix/
4.	Rebootlah web server jika dijalankan secara standalone sehingga bagian Alias pada file srm.conf tersebut terbaca.
5.	Hapuslah direktori /usr/local/httpd/data/unix
Dengan menggunakan teknik ini maka URL dari http://www.domain.com/unix/ akan tetap ada dan bekerja, padahal secara fisik letak direktori ini telah berpindah tempat.
4. Mengatur File-File Log
Secara harian atau mingguan webmaster harus memindahkan atau mengarsipkan file-file log tersebut untuk menjaga semakin bertambah besar dan untuk memberikan fasilitas analisa HTTP log. Adalah ide yang sangat bagus untuk membuat proses ini berlangsung secara otomatis.
Jika webmaster menjalankan httpd dengan menggunakan inetd, adalah sangat mudah, yaitu cukup memindahkan file-file log dengan menggunakan perntah mv, tanpa ada efek apapun yang diberikan kepada server. User baru yang minta hubungan http akan secara otomatis membuat file-file log yang baru.. Jika webmaster menjalankan httpd secara standalone, daemon dari http akan membuka file-file log ketika pertama kali httpd tersebut dijalankan dan file-file tersebut tidak akan ditutup sampai httpd dimatikan. Untuk melakukan pemindahan file-file log tersebut digunakan dua langkah :
1.	Pindahkanlah file-file log tersebut ke dalam file dengan nama yang baru. .
2.	Reboot web server.
Langkah kedua akan menyebabkan semua proses httpd ditulis kembali ke dalam file-file dengan nama-nama default yang telah disebutkan dalam httpd.conf. 
5. Log HTTP dan Analisanya
Ada dua file log pada NCSA Webserver, yaitu file log untuk error dan transfer. Secara default nama ke dua file tersebut adalah error_log dan access_log yang terletak pada direktori logs di ServerRoot. Letak dan nama file ini dapat diganti dengan mengubah option ErrorLog dan TransferLog pada file httpd.conf.
Dengan melihat kedua file tersebut dapat diketahui siapa yang mengakses web server dan apa yang diakses. Setiap user yang mengakses web server akan membuat daemon http mencatat semua kegiatan user tersebut, mulai dari nama mesin pengakses, tanggal dan waktu, URL yang diminta. Contoh bentuk dari file log adalah seperti ini :

Bentuk file log ini adalah bentuk yang paling umum karena hampir semua web server menggunakan format ini. Format dari log pada file access_log adalah :
	Host  rfc931  authuser  date-time  request  status  bytes
Arti dari format diatas adalah :
Host 	Nama mesin pengakses web server	
RFC931	RFC 931 menunjukan nama user jika aktif dan tanda – jika tidak. Normalnya adalah – jika httpd dikonfigurasi dengan IdentityCheck off (default). Jika option tersebut di pasang pada on maka httpd akan menggunakan protokol RFC 931 untuk berbicara dengan system yang menjalankan web browser untuk menentukan nama user yang mengakses web server tersebut.	
Authuser	Digunakan pada autentifikasi user untuk HTTP/1.0, dan tanda – jika tidak digunakan. Normalnya adalah (–), kecuali jika direktori yang diakses dilindungi user autentification. Jika ada user yang mengakses file dalam direktori tersebut maka authuser akan mengecek nama user yang digunakan untuk mengakses file tersebut.	
Date-time	Menunjukan waktu local pada saat terjadinya akses.	
Request	Permintaan yang dikirim oleh user kepada web server	
Status	Kode status dari HTTP/1.0 untuk setiap transaksi	
Bytes	Besarnya bytes yang dikirim dan transaksi ini, tanpa termasuk header	
Untuk membantu analisa dari log, ada beberapa perangkat lunak lain yang dapat digunakan seperti wwwstat. Wwwstat tidak termasuk bagian dari NCSA web server, sehingga perlu untuk ditambahkan sendiri. Perangkat ditulis dalam Perl tidak melakukan perubahan atau menulis suatu file dalam direktori Web server, sehingga dapat digunakan untuk melakukan analisa log tanpa harus menjadi root. wwwstat dapat dilihat di :
http://www.ics.uci.edu/WebSoft/wwwstat/
wwwstat dikembangkan oleh Roy Fielding, fielding@ics.uci.edu. Untuk melihat contoh kerjanya dapat dilihat di :
http://www.ics.uci.edu/Admin/wwwstats.html
Termasuk dalam wwwstat ini adalah gwstat yang dapat menterjemahkan hasil analisa dari wwwstat ke dalam bentuk grafik, format GIF.

Daftar Pustaka : 
Managing Internet Information Service, Cricket Liu, Jerry Peek, Russ Jones, Bryan Buus, & Adrian Nye, O'reilly & Associates, Inc.