Selamat Datang !

Tugas sekolah si pimen :D

Jumat, 04 Februari 2011

Optimasi Proxy

Proxy server adalah sebuah komputer server atau program komputer yang bertindak sebagai komputer lainnya untuk melakukan request terhadap content dari internet atau intranet.

Proxy Server bertindak sebagai gateway terhadap dunia ini Internet untuk setiap komputer klien. Proxy server tidak terlihat oleh komputer klien: seorang pengguna yang berinteraksi dengan Internet melalui sebuah proxy server tidak akan mengetahui bahwa sebuah proxy server sedang menangani request yang dilakukannya. Web server yang menerima request dari proxy server akan menginterpretasikan request-request tersebut seolah-olah request itu datang secara langsung dari komputer klien, bukan dari proxy server.

  • Fungsi proxy

1. Web Cache (Memori Pemyimpan Data)

Ketika ada permintaan website dari user, proxy akan mengambil datanya ke internet, kemudian menyimpannya (caching) dalam memory di proxy. untuk kemudian dapat digunakan kembali. Jika ada request pada halaman yang berisi gambar, text yang sebelumnya pernah diakses sebelumnya maka data tersebut tidak harus diambil langsung ke internet melainkan data akan diberikan oleh proxy server local yg telah terinstal. Sehingga akses akan lebih cepat dan bandwidth lebih irit.

2. Bandwidth Limiting (Pembatasan Bandwith)

Proxy juga bisa digunakan untuk membagi-bagi bandwidth user. Ini sangat berguna sekali untuk mengatasi pengguna internet yang suka ‘merampok’ jatah bandwidth user lain, selainitu juga untuk mengatasi user yang gemar mempercepat download dengan software tertentu. Dengan membagi bandwidth, setiap user akan mendapatkan jatah bandwidth yang sama, sehingga tidak ada lagi user tertentu yang bisa menguasai bandwith.

3. Web Filtering (Filter Situs Tertentu)
Semakin maraknya situs-situs negatif yang bisa merusak generasi, dengan proxy server, kita bisa menyaring website mana yang boleh diakses oleh user dan mana yang tidak boleh diakses oleh user.


Transparent Proxy

Merupakan suatu teknik agar Squid Proxy menjadi transparent atau tidak terlihat, maksudnya jika biasanya kita memasukkan alamat proxy pada setiap browser (firefox, etc..), jika transparent proxy diterapkan maka pada browser tidak akan kelihatan kita memasukkan alamat proxy kita.Sebelum memasukkan perintah transparent proxy pada squid, maka kita harus melakukan perintah iptable agar dapat meredirect port yang ada pada komputer client. Maksudnya jika squid kita set pada port 3128, maka permintaan client yang umumnya internet itu berada pada port 80 maka kita harus meredirect port 80 dari client tersebut ke port proxy kita yang berada pada port 3128.IP Forwarding, agar transparent proxy dapat diterapkan, maka kita harus mengaktifkan Ip Forwarding dengan memberikan nilai 1 p
idzole: nilai 1 pada file “/proc/sys/net/ipv4/ip_forward” dengan cara :
# echo 1 > /proc/sys/net/ipv4/ip_forward
Tetapi perintah tersebut harus kita jalankan auto startup, agar jika komputer squid mati kita tidak perlu repot2 menjalankan perintah tersebut secara terus menerus. Tutorial yang ditulis oleh M Furqon T, dapat kita jadikan pedoman untuk melakukan hal ini.Berikutnya kita harus menjalankan ip_tables agar client dapat meredirect port squid server kita dengan perintah :
# iptables -A PREROUTING -t nat -p tcp –dport 80 -j REDIRECT –to-port 3128
Kemudian restart proxy dengan perintah :
# squid -k reconfigure

Optimasi Konfig Squid

Pada artikel ini tidak akan dibahas semua option yang ada pada squid.conf, hanya akan dibahas option-option yang dirasa penting untuk menjalankan squid dan berpengaruh besar dalam optimasi squid.

http_port 3128
Option ini akan menentukan di port berapa squid akan berjalan (biasanya di port 3128 dan 8080)

icp_port 0
Option ini akan menentukan melalui port berapa squid akan mengirimkan dan menerima request ICP dari proxy cache tetangga.

cache_mem 32 MB
Option ini menentukan berapa besar memory yang akan digunakan oleh squid, defaultnya adalah 8 MB yaitu default yang cocok untuk digunakan pada
banyak sistem. Namun jika anda memiliki memory yang berlebih, maka disarankan untuk menaikkannya. Ada yang berpendapat bahwa nilai ini
didapat dari sepertiga memory bebas bagi squid.

cache_dir ufs /cache 1600 4 256
Option pada cache_dir menentukan sistem penyimpanan seperti apa yang akan digunakan (ufs), nama direktori tempat penyimpanan cache (/cache), ukuran
disk dalam megabytes yang digunakan oleh direktori tempat penyimpanan cache (1600 Mbytes), jumlah subdirektori pertama yang akan dibuat di bawah /cache (4),
dan jumlah subdirektori kedua yang akan diciptakan di bawah subdirektori pertama tadi (256).
Nilai2 pada option cache_dir tadi harus disesuaikan dengan sistem yang anda miliki, biasanya yang harus disesuaikan hanyalah tempat penyimpanan cache, ukuran disk,
dan jumlah subdirektori yang akan dibuat. Mengenai angka2 tersebut, dapat kita peroleh dari rumus yang telah disediakan oleh Devshed untuk optimasi sbb:
1. Gunakan 80% atau kurang dari setiap kapasitas cache direktori yang telah kita siapkan. Jika kita mengeset ukuran cache_dir kita melebihi nilai ini,
maka kita akan dapat melihat penurunan performansi squid.
2. Untuk menentukan jumlah subdirektori pertama yang akan dibuat, dapat menggunakan rumus ini:
x=Ukuran cache dir dalam KB (misal 6GB=~6,000,000KB) y=Average object size (gunakan saja 13KB)
z= Jumlah subdirektori pertama = (((x / y) / 256) / 256) * 2 = # direktori
Sebagai contoh, misal saya menggunakan 6 GB dari untuk /cache (setelah disisihkan 80% nya), maka:
6,000,000 / 13 = 461538.5 / 256 = 1802.9 / 256 = 7 * 2 = 14
maka baris cache_dir akan menjadi seperti ini: cache_dir ufs 6000 14 256

cache_store_log none
Option ini akan melog setiap aktivitas dari storage manager. Log ini akan memperlihatkan objek-objek mana saja yang dikeluarkan dari cache, dan objek-objek mana saja yang disimpan dan untuk brp lama objek tersebut disimpan. Karena biasanya tidak ada gunanya untuk menganalisis data ini, maka disarankan untuk didisable.

negative_ttl 2 minutes
Default dari option ini adalah 5 menit, tetapi menyarankan agar direndahkan menjadi 2 dan jika mungkin menjadi 1 menit. Kenapa settingannya seperti itu? bahwa kita menginginkan proxy yang kita miliki setransparan mungkin. Jika seorang user mencari halaman web yang dia yakin itu ada, maka kita pasti tidak ingin adanya waktu lag antara URL menuju dunia dan kemampuan user untuk mengaksesnya.

cache_effective_user squid
cache_effective_group squid
Jika squid cache dijalankan oleh root, maka user yang akan menjalankannya akan diubah sesuai UID/GID user yang disebutkan pada option di atas. Pada contoh option di atas jika squid dijalankan oleh root, maka squid cache akan dijalankan dengan UID/GID squid.

maximum_object_size 1024 KB
Dengan option ini, ukuran file maksimum yang disimpan oleh squid cache bisa dibatasi. Dengan kata lain objek yang lebih besar dari bilangan ini tidak akan disaved ke dalam disk yang sudah disisihkan buat cache (misal /cache).

minimum_object_size 4 KB
Dengan option ini maka objek yang lebih kecil dari bilangan yang disebutkan tidak akan disaved ke dalam disk yang sudah disisihkan buat cache. Ada tambahan dari artikel yang ditulis Mas Jay bahwa ukuran file minimum yang dicache bertujuan mengefektifkan filesystem di mana biasanya ext2 diformat dengan 4 KB inode.

ftp_usera
Dengan option ini, maka ketika klien mengakses situs ftp anonymous, email address di atas akan dikirim sebagai password bagi ftp server anonymous.

reference_age 1 month
Dengan option ini, maka file cache yang tidak pernah diakses lagi selama nilai parameter di atas, akan dihapus secara otomatis oleh squid.

acl LOKALKOS src 192.168.0.0/255.255.255.0
http_access allow LOKALKOS

http_access deny all
Option-option tersebut menentukan subnet mana yang boleh mengakses proxy squid. Jika ada beberapa subnet, kita bisa menambahkan definisi acl nya.

cache_mgr
Email-address dari local cache manager yang akan menerima email jika cache mati.Email ini pulalah yang akan muncul pada browser klien jika terjadi suatu kesalahan ketika mengakses suatu web via proxy squid.

visible_hostname www.okedeh.com
Informasi ini dikirim sebagai footer pada saat pesan error tampil di layar browser klien.

half_closed_clients off
Beberapa klien dapat membatalkan koneksi TCP nya, dengan membiarkan bagian penerimaaannya terbuka. Kadang-kadang squid tidak dapat membedakan antara koneksi TCP yang half-closed dan full-closed. Defaultnya, koneksi half-closed tetap terbuka sampai pembacaan dan penulisan pada soket memunculkan pesan error. Ubahlah nilai ini ke off, maka squid dengan serta merta akan menutup koneksi client jika tidak ada data yang dibaca lagi.

Saran Devshed yang lain untuk meningkatkan performance:
cache_swap_high 100%
cache_swap_low 80%

Pengembangan lebih lanjut untuk optimasi squid :
- Gunakan filesystem ReiserFS pada partisi cache direktori
- Gunakan 7200 RPM UDMA 66 drives atau fast (7200 atau 10k RPM) SCSI drives.Tweak dengan patch Andre Hedrick’s Unified IDE patch.
- Besarkan RAM

Tidak ada komentar:

Posting Komentar