1.) Sebuah program komputer yang bertanggung jawab
menerima http request dari client, yang dikenal
dengan web browser dalam respon http tersebut dengan
data sesuai pilihan seperti dokumen html dan link
object misal image.
2.) sebuah program komputer yang memberikan funsionalitas
seperti digambarkan di atas.
Walaupun program webserver berbeda beda mereka mempunyai kesamaan dalam
fitur dasar yang umum.
1)HTTP: setiap webserver program beroperasi dengan menerima HTTP request
dari jaringan dan memberikan http respon untuk merequest.respon HTTP
umumnya terdiri dari dokumen HTML tapi juga file text mentah. ,sebuah
image ,tipe dokument lainnya. jika sesuatu terjadi dalam client request
atau mencoba untuk melayani request , webserver akan menirin\mkan respon
error yang termasuk beberapa HTML custom atau pesan error.
2)Logging: biasanya webserver mempunyai kapablitas mengumpulkan informasi
yang mendetail mengenai user yang login dengan menjalankan log analizer
yang terdapat di file log
selain itu terdapat juga fitur :
1. Autentikasi ,request pilihan autorisasi (request username dan password)
sebelum mengakses sumber tertentu
2. mendukung SSI, CGI, SCGI, FastCGI, JSP, PHP, ASP, ASP .NET, Server API seperti
NSAPI, ISAPI dsb.
3. HTTPS mendukung SSL atau TLS untuk hubungan yang terenkripsi menggunakan standar
port 443 dari pada port 80
4. Isi kompress (contoh gzip )untuk mengurangi ukuran dari respon (mengurangi penggunaan bandwith)
5. Virtual hosting melayani banyak website menggunakan satu ip address
6. Large File Support
7. Bandwidth throttling membatasi kecepatan respon dalam jaringan dan menerima banyak client
Masalah overload
Suatu saat web server dapat overloaded karena
1) terlau banyak legitimasi web trafic (contoh ribuan bahkan jutaan client mengunjungi situs tersebuat
dalam waktu singkat)
2) Serangan DDOS Distributed Denial of Services
3) Worm Komputer yang dapat menyebabkan trafik tidak wajar karena jutaan komputer yang
terinfeksi
4) Virus XSS dapat menyebabkan traffic tinggi karena jutaan web browser yang terinfeksi
5) Intenet web robots trafic yang tidak terfilter / terbatasi dengan sedikit resource
(bandwith)
6) jaringan Intenet melambat :komputer client yang merequest lebih lambat dan beberapa
koneksi pc
client lain bertambah jadi server membatasi pencarian
Gejala Overloaded yaitu
Request yang melayani tertunda selama 1 detik atau beberapa detik
HTTP error 500,502,503,504 di terima oleh pc client
Koneksi TCP di tolak atau reset sebelum isi di terima kembali oleh pc client
Teknik mencegah overloaded
yang dapat di gunakan untuk mencegah overloaded yaitu :
Managing network traffic menggunakan :
Firewall untuk meng blok kedatangan traffic yang tidak di inginkan dari sumber IP atau yang
mempunyai pola buruk
HTTP traffic manager untuk mengdrop ,redirct ,rewrite request yang mempunyai pola http
buruk
Bandwith management dan traffic shaping dalam hal memeperlancar turunnya beban puncak
di penggunaan jaringan
Menggunakan teknik web chache
Menggunakan nama domain dalam hal pelayanan isi yang bersifat statis atau dinamis dengan menggunakan
webserver yang terpisah contoh:
http://image.contoh.com
http://www.contoh.com
Penggunaan nama domain yang berbeda dan komputer untuk memisahkam file berukuran besar dari file ukuran terkecil
hingga file ukuran terbesar.
di sadur dari wikipedia.org
Terjadi perbedaan besar antara apache 2.0 dengan apache 1.0 , Ketika anda ingin membangun sebuah web maka hal yang harus di ingat adalah operating system yang akan di gunakan .Hal yang perlu di ingat adalah
Penggunaan Apache 1.3 atau Apache 2.X ?
Instalasi penggunaan source atau package ?
Hosting sendiri atau menggunakan provider ?
Penggunaan Apache 1.3 atau Apache 2.X
Apache 1.3 sangat solid dengan dukungannya. Tidak terdokumentasi dillain pihak Apache 2.X mempunyai module yang tidak perlu di kompile ulang jika ingin menambahkan , merupkan lebih baik di banding dari apache 1.3 .
Perbedaan Apache 2.0
Yang paling menarik di antara perubahan apache 2.0 adalah arcitektur baru multithreading ,yang dapat di konfigurasi menggunakan modul multiprocessing (MPM) dan kenmudahan dalanm konfigurasi file .
MPM dalam keadaan default adalah “Prefork” Jika anda ingin menggunakan yang lain dapat di konfigurasi saat kompilasi.: Tiga mode dalam MPM untuk Linux :
Prefork : model Apache 1.3
Sebuah proses single parent .Pembagian anak untuk menjaga posisinya sesuai pada tempatnya. Kelebihan anak akan di killed off setelah penggambaran length of time.
Mengijinkan penggunaan library thread-unsafe. Jadi masih dapat menggunakan modul lama yang tidak mendukung multithreading.
Worker : Hybrid multiprocess and multithreads
Adalah server Hybrid multiprocess and multithreads menggunakan thread untuk menjamu permintaan di gunakan untuk menjalan
PerChild
Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Prefork secara umum di gunakan namun untuk user dengan penggunaan high-demand mungkin tertarik untuk menggunakan Worker MPM. Lihat di website apache tentang mempelajari worker MPM
Install melalui source atau package
Install melalui package memrupakan langkah tercepat, tetapi mempunyai masalah dalam penamaan filenya karena setiap distriibutor mempunyai file nama yang berbeda dan nama package yang berbeda.
Instalasi dari source juga memerlukan
Hosting-sendiri atau menggunakan service provider
Pilihan lain yaitu menggunkan pelayanan webhosting komersial yang dapat anda bayar bulanan secara gratis unutuk
Pilihan berikutnya adalah penyewaan
Hati hati terhadap keanehan metode billing bandwidth. Hati hati terhadap penggunaan bandwidth.
Instalasi Apache 2.0 menggunakan Source.
Instalasi Apache 2.0 melalui konfigurasi configure-make-make install
Pertama kali download tarbal Apache 2.0 dari situs http://www.apache.org saya menggunakan httpd-2.0.50
Kemudian buat semacam daftar di mana dimana file file hasil instalasi apache terletak:
# find / | grep –v –e ^/proc/ -e ^/tmp/ -e ^/dev/ > apache2-prainstallasi.list
Kemudian ,mulai versi Apache 2.0 apache developer memutuskan mereka lebih tertarik , meulis webserver dari pada menkonfigurasi system.Jadi Apache 2.0 menggunakan autoconf dan libtool untuk menentukan komponen apache yang di buat .Tarball yang di download dari situs apache.org mempunyai konfigurasi script yang telah di buat ,jalankan perintah :
#./buildconf # akan mencari semua direktoriyang tersidia sesuai dengan konfigurasi apache yang di syaratkan
Setelah itu pindah ke direktori di mana di mana tarbal apache 2.0 di unpack
# ./configure –prefix=/etc/httpd \
? –-exec-prefix=/usr \
?—bindir=/usr/bin \
?—sbindir=/usr/sbin \
?—mandir=/usr/share/man \
?—sysconfdir=/etc/httpd/conf \
?—includedir=/usr/include/httpd \
?—libexecdir=/usr/lib/httpd/modules \
?—datadir=/var/www/ \
?—with-mpm=prefork \
?--enable-mods-shared=”rewrite” \
?--disable-cgi
./configure = mengatur konfigurasi paket ini untuk beradaptasi dengan system
Penggunaan : ./configure [OPTION].. [VAR=VALUE]…
Untuk menugaskan lingkungan variable (contoh e.g, CC, CFLAGS..), menjelaskan mereka sebagai VAR=VALUE. Di bawah merupakan gambaran beberapa varuiable yang sangat berguna.
Direktori instalasi:
--prefix=PREFIX install file architecture-mandiri dalam PREFIX
[/usr/local/apache2]
Contoh = --prefix=/etc/httpd
--exec-prefix=EPREFIX install file architecture-ketergantungan dalam EPREFIX
[PREFIX]
Contoh=--prefix=/etc/httpd
Secara umum , ‘make install’ akan menginstall semua file dalam ‘/usr/local/apache2/bin’ ,’/usr/local/apache2/lib’ dsb.. Anda dapat menentukan letak file tersebut contoh ‘—prefix=$home’
Unutk pengawasan yang lebih mudah ,gunakan pilihan berikut dapat di lakukan terhadap direktori berikut :
--bindir=DIR Eksekusi yang di lakukan oleh user [EPREFIX/bin]
Contoh = /usr/bin
--sbindir=DIR Eksekusi yang di lakukan oleh system admin [EPREFIX/sbin]
Contoh = /usr/sbin
--libexecdir=DIR Eksekusi untuk Program [EPREFIX/sbin]
Contoh = /usr/lib/httpd/modules
--datadir=DIR read-only data arsitektur-mandiri [PREFIX/share]
Contoh = /var/www
--sysconfdir=DIR read-only data single-machine [PREFIX/etc]
Contoh = /etc/httpd/conf
--sharedstatedir=DIR modifikasi data arsitektur-mandiri [PREFIX/com]
--localstatedir=DIR modifikasi data single-machine [PREFIX/var]
--libdir=DIR library kode object [EPREFIX/include]
--includedir=DIR file-file Header C
--oldincludedir=DIR file-file Header C untuk non-gcc [/usr/include]
--infodir=DIR Dokumentasi info [PREFIX/info]
--mandir=DIR Dokumentasi man [PREFIX/man]
Contoh : /usr/shared/man
Tipe system:
--build=BUILD konfigurasi untuk pembuatan BUILD [guessed]
--host=HOST kompile-silang untuk build program agar berjalan di HOST
[BUILD]
--target=TARGET konfigurasi unutk pembuatan compiler untuk TARGET [HOST]
Fitur Pilihan :
--disable-FEATURE tidak meninclude-kan FEATURE (sama seperti –enable-
FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-layout=LAYOUT
--enable-v4-mapped memperbolehkan IPv6 sockets untuk menghandle koneksi
IPV4
--enable-exception-hook membolehkan fatal exception hook
--enable-maintainer-mode menjalankan perbaikan dan kompile waktu peringatan
--enable-pie Build httpd sebagai posisi mandiri yang dapat di eksekusi
---enable-modules=MODULE-LIST
Daftar ruang pemisah dari share module module untuk
Membolehkan “all” | “most”
--disable-authn-file file berdasar control autentikasi
--enable-authn-dbm DBM berdasarkan control autentikasi
--enable-authn-anon control atutentikasi anonymous
--enable-authn-dbd SQL berdasar control autentikasi
--disable-authn-default Penghalang autentikasi
--enable-authn-alias autentikasi provider alias
--disable-authz-host host berdasar kontrol autorisasi
--disable-authz-groupfile
'mensyaratkan group' kontrol autorisasi
--disable-authz-user 'mensyaratkan user' kontrol autorisasi
--enable-authz-dbm DBM berdasarkan kontol autorisasi
--enable-authz-owner 'mensyaratkan file-owner' kontrol autorisasi
--enable-authz-ldap LDAP berdasarkan autentikasi
--enable-authz-default penghalang kontrol autorisasi
--disable-auth-basic dasar autentikasi
--enable-auth-digest RFC2617 autentikasi
--enable-isapi support ekstensi isapi
--enable-file-cache file cache
--enable-cache dynamic file caching
--enable-disk-cache disk caching module
--enable-mem-cache memory caching module
--enable-dbd Apache DBD Framework
--enable-bucketeer buckets manipulation filter
--enable-dumpio I/O dump filter
--enable-echo ECHO server
--enable-example modul contoh dan module
--enable-case-filter example uppercase conversion filter
--enable-case-filter-in
example uppercase conversition input filter
--enable-ext-filter external filter module
--disable-include serverside Include
--disable-filter smart filtering
--disable-charset-lite
character set translation
--enable-charset-lite character set translation
example uppercase conversion input filter
--enable-ext-filter external filter module
--disable-include Server Side Include
--disable-filter smart filtering
--disable-charset-lite
karakter set translation
--enable-charset-lite karakter set translation
--enable-deflate deflate transfer encoding support
--enable-ldap LDAP caching dan connection pooling services
--disable-log-config logging konfigurasi
--enable-log-forensic forensic logging
--enable-logio input and output logging
--disable-env clearing/setting of ENV vars
--enable-mime-magic menentukan secara otomatis tipe MIME
--enable-cern-meta CERN-type meta files
--enable-expires kontrol header habis masa berlaku
--enable-headers kontrol header HTTP
--enable-ident RFC 1413 check identitas
--enable-usertrack user session tracking
--enable-unique-id per-request unique ids
--disable setenvif basing ENV vars on headers
--enable-version menentukan versi httpd dalam file config
--enable-proxy modul apache proxy
--enableproxy-connect Apache proxy CONNECT module
--enable-proxy-ftp Apache proxy FTP module
--enable-proxy-http Apache proxy HTTP module
--enable-proxy-ajp Apache proxy AJP module
--enable-ssl SSL/TLS support (mod_ssl)
--enable-distcache Select distcache support in mod_ssl
--enable-optional-hook-export
example optional hook exporter
--enable-optional-fn-import
example optional hook importer
--enable-optional-fn-export
example optional function exporter
--enable-static-support Build statically linked version of the support binnaries
--enable-static-htpasswd
Build statically linked version of htpasswd
--enable-static-htdigest
Build statically linked version of htdigest
--enable-static-rotatelogs
Build statically linked varsion of rotatelogs
--enable-static-logresolve
Build statically linked varsion of logresolve
--enable-static-checkgid
Build a statically linked vaersion of checkgid
--enable-http HTTP protocol handling
--disable-mime mapping of file extension to MIME
--enable-dav WebDAV protocol handling
Apache securing Apache HTTP Server
Apache HTTP Server salah satu stable dan service yang aman.
Berikut ini adalah komfigurasi yang perlu di perhatikan
oleh para admin dengan seksama :
FollowSymLinks
adalah enable secara default. jadi berhati hatilah
ketika membuat symbolic links dalam documentroot dari Apache
HTTP Server Web dengan kata lain merupakan hal yang buruk memberikan symbolic link /
The Indexes Directive
petunjuk ini mengenablekan secara default jika anda tidak ingin
user meng browse file di dalam server adalah hal terbaik untuk mengilangkan petunjuk/perintah ini.
The UserDir Directive
perintah UserDir Directive secara default di disablekarena dapat
mengkonfirm kehadiran account user dalam system. jika anda ingin mengenable
user directory browsing dalam server ikuti perintah berikut:
UserDir enabled
UserDIr disable root
Perintah ini mengaktifkan user directory browsing ke semua user directory ,selain root
.Jika anda ingin menmbahkan user ke dalam user dalam daftar akun yang di disable tambahkan spasi
Jangan menghilangkan IncludeNoExec Directive
secara default ,Server-side mengincludekan module yang tidak mengeksekusi perintah.
Sebaiknya dalam hal ini dibiarkan default saja karena berpotensi penyerang mengeksekusi perintah dalam system
Mengatur Permission untuk directory Exacutable
Tentukan permission yang di berikan hanya untuk root dan hanya yang berisi scripts atau CGI dapat di atur dengan perintah berikut:
chown root
chmod 755
--------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
Yang dibutuhkan adalah source-source berikut :
1. mysql-3.22.32.tar.gz
2. apache_1.3.26.tar.gz
3. php-4.1.2.tar.gz
4. openssl-0.9.6c.tar.gz
5. mod_ssl-2.8.10-1.3.26.tar.gz
Install MySQL-nya dulu
-----------------------------
unpack source nya, compile dan Install :
/usr/local > tar -xzvf mysql-3.22.32.tar.gz
pw groupadd mysql
pw useradd mysql
/usr/local > cd mysql-3.22.32/
/usr/local/mysql-3.22.32 > ./configure --prefix=/usr/local/mysql
/usr/local/mysql-3.22.32 > make
/usr/local/mysql-3.22.32 > make install
/usr/local/mysql-3.22.32 > cp support-files/my-medium.cnf /etc/my.cnf
cd /usr/local/mysql/
/usr/local/mysql/bin/mysql_install_db
/usr/local/mysqlbin>./scripts/mysql_install_db --user=mysql
/usr/local/mysql/chown -R root .
/usr/local/mysql/chown -R mysql var
/usr/local/mysql/chgrp -R mysql .
/usr/local/mysql/bin/mysqld_safe --user=mysql &
menjalankan MySQL :
/usr/local/mysql-3.22.32 > cd /usr/local/mysql/bin
/usr/local/mysql/bin > ./safe_mysqld &
untuk informasi lengkap installasinya ada pada http://www.mysql.com/doc/F/r/FreeBSD.html
Unpack dan configure Apache
-------------------------------------
/usr/local > tar -xzvf pache_1.3.26.tar.gz
/usr/local > cd apache_1.3.26/
/usr/local/apache_1.3.26 > ./configure --prefix=/usr/local/apache
Install PHP
-------------
unpack source nya, compile dan Install :
/usr/local > tar -xzvf php-4.1.2.tar.gz
/usr/local > cd php-4.1.2/
/usr/local/php-4.1.2 > ./configure --with-mysql=/usr/local/mysql \
> --with-xml \
> --with-apache=/usr/local/apache_1.3.26 \
> --enable-track-vars
/usr/local/php-4.1.2 > make
/usr/local/php-4.1.2 > make install
/usr/local/php-4.1.2 > cp php.ini-dist /usr/local/lib/php.ini
Install openssl dan mod_ssl
-----------------------------------
unpack source nya, compile dan Install :
/usr/local > tar -xzvf openssl-0.9.6c.tar.gz
/usr/local > cd openssl-0.9.6c/
/usr/local/openssl-0.9.6c > ./config --prefix=/usr/local/ssl
/usr/local/openssl-0.9.6c > make
/usr/local/openssl-0.9.6c > make test
/usr/local/openssl-0.9.6c > make install
/usr/local/openssl-0.9.6c > cd ..
/usr/local/ tar -xzvf mod_ssl-2.8.10-1.3.26.tar.gz
/usr/local > cd mod_ssl-2.8.10-1.3.26
/usr/local/mod_ssl-2.8.10-1.3.26 > ./configure --with-apache=/usr/local/apache_1.3.26
Install Apache
-------------------
/usr/local > cd apache_1.3.26/
/usr/local/apache_1.3.26 > SSL_BASE=/usr/local/openssl-0.9.6c \
> ./configure \
> --enable-module=ssl \
> --activate-module=src/modules/php4/libphp4.a \
> --enable-module=php4 \
> --prefix=/usr/local/apache2 \
> --enable-shared=ssl
setelah langkah-langkah diatas di jalankan, langkah selanjutnya adalah konfigurasi /usr/local/apache2/conf/httpd.conf, agar PHP kita dapat jalan maka kita tambahkan script di file httpd.conf seperti dibawah ini :
#LoadModule php4_module modules/libphp4.so
DirectoryIndex index.html index.htm index.php
AddType application/x-httpd-php .php .php3 .phtml
AddType application/x-httpd-php-source .phps
atau telnet ke komputer local :
# telnet localhost 80
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
Jika sudah keluar tulisan diatas berarti apache sudah berjalan dengan benar.:)
/usr/local/apache_1.3.26 > make
/usr/local/apache_1.3.26 > make certificate TYPE=custom
/usr/local/apache_1.3.26 > make install
selesai .
Konfigurasi Apache
-------------------------
Edit httpd.conf yang berada di /usr/local/apache/conf/ , dan tambahkan baris berikut :
AddType application/x-tar .tgz
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
jalankan apache :
# /usr/local/apache/bin/apachectl start
untuk menjalankan apache dengan mode SSL :
# /usr/local/apache/bin/apachectl startssl
menjalankan dengan mode SSL , kita akan diminta memasukkan pass-phrase nya.
apabila kita tidak ingin memasukkan pass-phrase setiap kali apache di jalankan , lakukan langkah-langkah berikut :
1. Hilangkan enkripsi dari RSA private key ( dan kita backup file aslinya ) :
# cd /usr/local/apache/conf/ssl.key/
# cp server.key server.key.org
# openssl rsa -in server.key.org -out server.key
2. Pastikan file server.key hanya terbaca oleh root:
# chmod 400 server.key
kemudian restart apache .
referensi :
http://www.apache.org
http://www.mysql.com/doc/F/r/FreeBSD.htm
http://www.modssl.org
http://www.devshed.com
3 comments:
It is rather valuable answer
Listen.
Excuse for that I interfere ?To me this situation is familiar. I invite to discussion. Write here or in PM.
Post a Comment