SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
SQUID (Proxy Server)
       Squid proxy server memungkinkan Anda untuk cache konten web dan kembali dengan cepat
pada permintaan berikutnya. Dengan menjalankan squid dalam accelerator mode, permintaan akan
ditangani lebih cepat dari pada web server normal, sehingga membuat situs Anda tampil lebih cepat
daripada orang lain!

                                                                Memulai dengan Squid
Proxy server
       Sebuah server proxy adalah sebuah sistem komputer berada antara klien meminta sebuah
dokumen web dan server target (sistem komputer lain) yang melayani dokumen. Dalam bentuk
sederhana, sebuah proxy server memfasilitasi komunikasi antara klien dan server tanpa memodifikasi
permintaan atau balasan. Ketika kita memulai permintaan untuk resource dari server, proxy server
membajak koneksi kita dan mewakili dirinya sendiri sebagai klien ke server, meminta resource atas
nama kita. Jika balasan diterima, server proxy mengembalikan kepada kita, seaakan-akan kita telah
berkomunikasi dengan server. Dalam bentuk tingkat lanjut, proxy server dapat menyaring permintaan
berdasarkan berbagai aturan dan memungkinkan komunikasi hanya ketika permintaan dapat divalidasi
terhadap aturan yang tersedia. Aturan umumnya didasarkan pada alamat IP dari klien atau server,
protokol, tipe content dokumen web, jenis konten web, dan sebagainya.




       Seperti yang terlihat pada gambar sebelumnya, klien tidak dapat membuat permintaan langsung
ke server web. Untuk memfasilitasi komunikasi antara klien dan web server, kita harus
menghubungkan mereka menggunakan server proxy yang bertindak sebagai media komunikasi untuk
klien dan web server. Kadang-kadang, proxy server dapat mengubah permintaan atau balasan, atau
bahkan dapat menyimpan balasan dari server secara lokal untuk memenuhi permintaan yang sama dari
klien yang sama atau dari klien lain pada tahap berikutnya. Menyimpan balasan lokal untuk digunakan
di lain waktu dikenal sebagai cache. Caching adalah teknik yang populer digunakan oleh proxy server
untuk menghemat bandwidth, memberdayakan web server, dan meningkatkan pengalaman browsing
pengguna.
Proxy server sebagian besar digunakan untuk melakukan berikut ini:
   1. Mengurangi penggunaan bandwidth
   2. Meningkatkan pengalaman browsing pengguna dengan mengurangi waktu buka halaman
       dengan adanya caching dokumen web
   3. Menegakkan kebijakan akses jaringan
   4. Pemantauan lalu lintas pengguna atau pelaporan penggunaan internet untuk pengguna individu
       atau kelompok
   5. Meningkatkan privasi pengguna dengan tidak mengekspos komputer pengguna secara langsung
       ke Internet
Reverse proxy
       Reverse proxy adalah teknik menyimpan jawaban atau sumber daya dari web server secara
lokal sehingga permintaan berikutnya ke sumber daya yang sama dapat dipenuhi dari salinan lokal pada
proxy server , kadang-kadang bahkan tanpa benar-benar menghubungi web server. Proxy server atau
web cache akan memeriksa salinan yang disimpan secara lokal dari dokumen web masih berlaku
sebelum salinan cache disajikan.
Caching web yang banyak digunakan:
   •   Untuk mengurangi penggunaan bandwidth. Sebagian besar dokumen web statis seperti file CSS
       dan JavaScript, gambar, video, dan sebagainya dapat disimpan pada cache memori karena
       mereka tidak sering berubah dan merupakan bagian utama dari sebuah respon dari web server.
   •   Oleh ISP untuk mengurangi rata-rata waktu buka halaman untuk meningkatkan pengalaman
       browsing untuk pelanggan mereka pada Dial-Up atau broadband.
   •   Untuk mengambil beban dari web server yang sangat sibuk dengan melayani halaman statis /
       dokumen dari cache proxy server.
Memperoleh Squid
       Squid tersedia dalam beberapa bentuk (compressed source archives, source code dari versi
sistem kontrol, binary paket seperti RPM, DEB, dan sebagainya) dari situs resmi Squid, mirror Squid
dari berbagai seluruh dunia, dan repositori perangkat lunak dari hampir semua sistem operasi . Squid
juga disertakan dengan banyak distribusi Linux / Unix.
Ada berbagai versi dan rilis Squid tersedia untuk di-download dari situs resmi Squid. Untuk
mendapatkan hasil maksimal dari instalasi squid lebih baik memeriksa source code terbaru dari Version
Control System (VCS) sehingga kita mendapatkan fitur terbaru dan perbaikan. Tapi perlu hati-hati,
source code terbaru dari VCS umumnya mutakhir dan mungkin tidak stabil atau bahkan mungkin tidak
bekerja dengan benar. Meskipun kode dari VCS bagus untuk belajar atau pengujian fitur baru Squid,
Anda sangat disarankan untuk tidak menggunakan kode dari VCS untuk penyebaran produksi. Jika kita
ingin bermain aman, kita mungkin harus men-download versi stabil terbaru atau versi stabil dari rilis
yang lebih tua. Versi yang stabil umumnya diuji sebelum mereka dilepaskan. Versi yang stabil dapat
langsung digunakan dalam penyebaran produksi.
Waktu untuk bertindak - mengidentifikasi versi yang tepat
       Daftar versi Squid tersedia terdapat pada http://www.squid-cache.org/ Versions/ . Untuk
lingkungan produksi, kita harus menggunakan versi yang tercantum di bawah bagian Versi Stabil saja.




Waktu untuk bertindak – men-download Squid
       Sekarang kita akan men-download squid 3.1.10 dari situs resmi Squid:
   1. Kunjungi web http://www.squid-cache.org/Versions/
   2. Sekarang kita perlu untuk mengklik pada link versi 3.1, seperti ditunjukkan pada gambar
       berikut:




   3. Kita akan dibawa ke halaman yang menampilkan berbagai rilis dalam versi 3.1. Link dengan
       tulisan tar.gz pada kolom download adalah paket compress source dari paket squid :
4. Untuk mendownload klik pada link tar.gz
   5. Atau bisa mendownload paket tersebut melalui terminal dengan mengetikkan perintah berikut :
       $ wget http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.10.tar.gz


Mendapatkan kode sumber terbaru dari Bazaar VCS


       Pengguna yang sudah mahir mungkin tertarik untuk mendapatkan kode sumber yang terbaru
dari repositori kode Squid, menggunakan Bazaar. Kita dapat melewati bagian ini jika kita tidak akrab
dengan VCS pada umumnya. Bazaar adalah sistem kontrol versi (VCS) populer digunakan untuk
melacak sejarah proyek dan memfasilitasi kolaborasi. Dari versi 3.x dan seterusnya, kode sumber Squid
telah bermigrasi ke Bazaar. Oleh karena itu, kita harus memastikan bahwa kita memiliki Bazaar diinstal
pada sistem kita untuk memeriksa repositori dari kode sumber. Untuk mengetahui lebih lanjut tentang
Bazaar atau untuk instalasi Bazaar dan konfigurasi manual, silakan kunjungi situs resmi Bazaar di
http://bazaar.canonical.com/.
       Setelah kita memiliki Bazaar setup, kita harus kita harus menuju ke mirror repositori kode
Squid pada Launchpad di https://code.launchpad.net/squid/. Dari sini kita dapat menelusuri semua versi
dan cabang Squid. Mari membuat diri kita akrab dengan tata letak halaman :




Dalam screenshot Series: trunk merupakan cabang pengembangan, yang berisi kode yang masih
dalam pengembangan dan belum siap untuk penggunaan produksi. Cabang-cabang dengan status
Mature sudah stabil dan dapat digunakan langsung dalam lingkungan produksi.
Instalasi Squid
       Squid dapat diinstal dengan menggunakan kode sumber yang kita diperoleh dalam bagian
sebelumnya, menggunakan manajer paket, menggunakan paket biner yang tersedia untuk sistem
operasi kita. Mari kita lihat rinci bagaimana cara kita dapat menginstal Squid.
Proses instalasi Squid dari source code ada tiga langkah:
   1. Pilih sistem operasi fitur dan pengaturan khusus.
   2. Kompilasi kode sumber untuk menghasilkan executable.
   3. Tempatkan executable yang dihasilkan dan file lain yang dibutuhkan di lokasi mereka yang
       ditunjuk untuk Squid berfungsi dengan baik.
Kita dapat melakukan beberapa langkah di atas menggunakan alat otomatis yang membuat kompilasi
dan proses instalasi relatif mudah.
Kompilasi Squid
       Kompilasi Squid adalah proses kompilasi beberapa file yang mengandung C/C++ source code
dan menghasilkan executable. Kompilasi Squid benar-benar mudah dan dapat dilakukan dalam
beberapa langkah. Untuk mengkompilasi Squid, kita perlu ANSI C/ C++ compiler yang sesuai. Jika
kita sudah memiliki GNU C/C++ Compiler (GNU Compiler Collection (GCC) dan g++, sudah tersedia
di hampir setiap sistem operasi Linux / Unix secara default), kita siap untuk memulai kompilasi.
Mengapa kompilasi?
       Kompilasi Squid adalah sedikit tugas yang menyakitkan dibandingkan dengan menginstal squid
dari paket biner. Namun, kami merekomendasikan kompilasi Squid dari sumber daripada menggunakan
pre-compiled binari. Mari kita lihat beberapa keuntungan dari kompilasi Squid dari sumber:
   •   Saat kompilasi kita dapat mengaktifkan fitur tambahan, yang tidak dapat diaktifkan dalam paket
       pre-compiled binary.
   •   Ketika kompilasi, kita juga dapat menonaktifkan fitur tambahan yang tidak diperlukan untuk
       lingkungan tertentu. Sebagai contoh, kita mungkin tidak perlu helper Otentikasi atau dukungan
       ICMP.
   •   Menggunakan mengkonfigurasi, kita dapat menentukan lokasi alternatif untuk menginstal
       Squid. Kita bahkan dapat menginstal Squid tanpa hak root atau super user, yang tidak mungkin
       dapat dilakukan dengan pre-compiled paket biner.
       Meskipun kompilasi Squid dari source memiliki banyak keunggulan dibandingkan menginstal
dari paket binary, paket biner memiliki keunggulan tersendiri. Sebagai contoh, ketika kita berada dalam
mode pengendalian kerusakan atau situasi krisis dan kita perlu untuk mendapatkan proxy server dan
berjalan sangat cepat, menggunakan paket biner untuk instalasi akan menyediakan instalasi cepat.
Uncompressing arsip
Jika kita memperoleh Squid dalam format arsip terkompresi, kita harus mengekstrak sebelum kita dapat
melanjutkan lebih jauh. Jika kita memperoleh Squid dari Launchpad menggunakan Bazaar, kita tidak
perlu melakukan langkah ini.
tar -xvzf squid-3.1.10.tar.gz
         tar adalah perintah populer yang digunakan untuk mengekstrak arsip terkompresi dari berbagai
jenis. Di sisi lain, juga dapat digunakan untuk kompres banyak file ke arsip tunggal. Perintah
sebelumnya akan mengekstrak arsip ke direktori bernama squid-3.1.10.
Konfigurasi atau sistem check
         Mengkonfigurasi atau memeriksa sistem adalah langkah pertama dalam proses kompilasi dan
diperoleh dengan menjalankan ./configure pada command line. Program ini memeriksa sistem,
memastikan bahwa paket yang dibutuhkan telah terinstal. Selain itu juga memeriksa kemampuan
sistem dan mengumpulkan informasi tentang arsitektur sistem dan pengaturan standar seperti,
deskriptor file yang tersedia dan sebagainya. Setelah mengumpulkan semua informasi, program ini
menghasilkan makefiles, yang digunakan pada langkah berikutnya untuk mengkompilasi source code
squid.
         Menjalankan configure tanpa parameter apapun akan menggunakan default preset. Jika kita
bersedia untuk mengubah pengaturan default Squid atau jika kita ingin menonaktifkan beberapa fitur
opsional yang diaktifkan secara default, atau jika kita ingin menginstal Squid di lokasi alternatif dalam
sistem file, kita perlu menambahkan pilihan untuk mengkonfigurasi. Gunakan perintah berikut untuk
melihat pilihan yang tersedia sebagai gambaran singkat.
Mari kita jalankan configure dengan opsi --help untuk melihat opsi konfigurasi yang tersedia.
./configure --help | less
Ini akan menampilkan halaman yang berisi pilihan dan penjelasan singkat untuk configure. Gunakan
tombol panah atas dan bawah untuk menelusuri informasi. Sekarang mari kita membahas beberapa opsi
yang umum digunakan dengan configure:
--prefix
         Opsi --prefix adalah pilihan yang paling umum digunakan. Jika kita sedang menguji versi baru
atau jika kita ingin menguji beberapa versi Squid, kita akan memiliki beberapa versi squid yang
terpasang pada sistem kita. Untuk mengidentifikasi versi yang berbeda dan untuk mencegah
kemungkinan terjadinya gangguan atau kebingungan antar versi, itu ide yang baik untuk menginstal
mereka dalam direktori terpisah. Sebagai contoh, untuk menginstal versi Squid 3.1.10, kita dapat
menggunakan direktori /opt/squid/3.1.10/ dan perintah configure terkait akan dijalankan sebagai:
       ./configure --prefix=/opt/squid/3.1.10/
Demikian pula, untuk menginstal versi Squid 3.1, kita dapat menggunakan direktori /opt/squid/3.1/.
Mulai sekarang dan seterusnya, ${prefix} akan mewakili lokasi di mana kita telah menginstal squid,
yaitu, nama direktori yang digunakan dengan opsi --prefix saat menjalankan configure, seperti yang
ditunjukkan pada perintah sebelumnya.
       Squid menyediakan lebih dalam mengontrol lokasi dari berbagai jenis file seperti executable
dan file dokumentasi. Penempatan mereka dapat dikontrol dengan pilihan seperti --bindir, --sbindir, dan
seterusnya. Silakan periksa halaman bantuan configure untuk rincian lebih lanjut tentang pilihan ini.
       Sekarang, mari kita memeriksa fitur opsional dan paket. Untuk mengaktifkan fitur opsional
apapun, kita gunakan pilihan dalam format --enable-FEATURE_NAME dan untuk menonaktifkan fitur,
format pilihan adalah --disable-FEATURE_NAME or --enable-FEATURE_NAME=no . Sebagai
contoh, icmp adalah nama fitur.
       ./configure --enable-FEATURE # FEATURE will be enabled
       ./configure --disable-FEATURE # FEATURE will be disabled
       ./configure --enable-FEATURE=no # FEATURE will be disabled
       Demikian pula, untuk mengkompilasi Squid dengan paket yang tersedia, kita gunakan sebuah
opsi dalam format --with-PACKAGE_NAME dan untuk mengkompilasi Squid tanpa sebuah paket, kita
gunakan pilihan --without-PACKAGE_NAME. openssl adalah sebuah nama paket misalnya.
--enable-gnuregex
       Ekspresi reguler yang digunakan untuk membangun Access Control Lists di squid. Jika kita
menjalankan sistem Linux/Unix berbasis operasi modern, kita tidak perlu khawatir tentang pilihan ini.
Tapi jika sistem kita tidak memiliki built-in yang mendukung untuk ekspresi reguler, kita harus
mengaktifkan dukungan untuk ekspresi reguler menggunakan –enable-gnuregex.
-- disable-inline
       Squid memiliki banyak kode yang dapat Inlined, yang baik untuk penggunaan produksi. Tapi
kode inline memakan waktu lebih lama untuk mengkompilasi dan berguna ketika kita perlu untuk
mengkompilasi sumber hanya sekali untuk menyiapkan Squid untuk penggunaan produksi. Pilihan ini
dimaksudkan untuk digunakan selama pengembangan ketika kita perlu waktu kompilasi Squid dan lagi.
--disable-optimizations
       Squid, secara default, dikompilasi dengan optimasi compiler yang menghasilkan kinerja yang
lebih baik. Sekali lagi pilihan ini harus digunakan saat debugging masalah atau pengujian versi yang
berbeda yang akan mengurangi waktu kompilasi. Pilihan --disable-inline secara otomatis digunakan
jika kita menggunakan opsi ini.
--enable-storeio
       Kinerja squid sangat bergantung pada disk I / O kinerja saat disk caching diaktifkan. Quicker
Squid dapat membaca/menulis file dari cache, pada waktu tertentu ia akan mengambil untuk memenuhi
permintaan, yang pada gilirannya akan mengakibatkan waktu delay (penundaan) yang lebih kecil.
Teknik penyimpanan yang berbeda dapat menyebabkan kinerja yang optimal, tergantung pada jenis lalu
lintas dan penggunaan. Kita dapat menggunakan opsi ini untuk membangun Squid dengan dukungan
untuk modul berbagai penyimpanan I/O. Silakan periksa src/fs/ direktori source code squid untuk
modul penyimpanan I/O yang tersedia.
       ./configure –enable-storeio=ufs,aufs,coss,diskd,null
--enable-removal-policies
       Sewaktu menggunakan disk caching, kita menginstruksikan Squid untuk menggunakan ruang
disk yang ditentukan untuk caching dokumen web. Selama periode waktu, ruang yang dikonsumsi dan
Squid masih perlu lebih banyak ruang untuk cache dokumen baru. Squid kemudian harus memutuskan
mana dokumen lama harus dihapus atau dibersihkan dari cache untuk membuat ruang untuk
menyimpan yang baru. Ada kebijakan yang berbeda untuk membersihkan dokumen untuk mencapai
manfaat maksimal dari caching.
       Kebijakan ini didasarkan pada struktur tumpukan dan daftar data. Daftar struktur data diaktifkan
secara default. Silakan periksa src/repl/ direktori source code squid untuk kebijakan penghapusan yang
tersedia.
       ./configure –enable-removal-policies=heap,lru
--enable-icmp
       Opsi ini berguna dalam menentukan jarak dari rekan-rekan cache lainnya dan remote
server untuk memperkirakan perkiraan latency. Hal ini berguna hanya jika kita memiliki rekan-rekan
cache lainnya dalam jaringan.
--enable-delay-pools
       Squid menggunakan delay pools untuk membatasi atau mengontrol bandwidth yang dapat
digunakan oleh klien atau sekelompok klien. Delay pools seperti ember bocor yang kebocoran data
(lalu lintas web) untuk klien dan diisi ulang pada tingkat yang terkendali. Hal ini bermanfaat ketika kita
perlu untuk mengontrol bandwidth yang digunakan oleh sekelompok pengguna.
--enable-esi
       Opsi     ini   memungkinkan     Squid    untuk   menggunakan      Edge    Side    Includes   (lihat
http://www.esi.org untuk informasi lebih lanjut). Jika ini diaktifkan, squid akan mengabaikan header
cache-kontrol dari klien. Pilihan ini hanya dimaksudkan untuk digunakan saat Squid digunakan dalam
modus akselerator.
--enable-useragent-log
         Menyediakan kemampuan logging header agen pengguna dari permintaan HTTP oleh klien.
--enable-referer-log
         Jika kita mengaktifkan opsi ini, Squid akan mampu menulis kolom header referer dari
permintaan HTTP.
--disable-wccp
         Opsi ini menonaktifkan dukungan untuk Web Cache Komunikasi Protocol (WCCP) Cisco.
WCCP memungkinkan komunikasi antara cache, yang pada gilirannya membantu dalam melokalisir
lalu lintas. Secara default, dukungan WCCP diaktifkan.
--disable-wccpv2
         Mirip dengan pilihan sebelumnya, ini Menonaktifkan dukungan Cisco WCCP versi 2. WCCPv2
adalah versi perbaikan dari WCCP dan memiliki built-in mendukung untuk load balancing, scaling,
fault-tolerance, dan mekanisme pelayanan jaminan. Secara default, dukungan WCCPv2 diaktifkan.
--disable-snmp
         Dalam versi Squid 3.x, SNMP (Simple Network Management Protocol) diaktifkan secara
default. SNMP cukup populer di kalangan administrator sistem untuk server monitoring
dan perangkat jaringan.
--enable-cachemgr-hostname
         Cache Manager (cachemgr.cgi) adalah utilitas CGI untuk mengelola squid cache dan melihat
statistik cache menggunakan antarmuka web. Nama host untuk mengakses manajer cache bisa diatur
menggunakan opsi ini. Secara default, kita dapat mengakses cache manager antarmuka web
menggunakan localhost atau alamat IP dari server squid.
         ./configure –enable-cachemgr-hostname=squidproxy.example.com
--enable-arp-acl
         Squid mendukung pengembangan Access Control Lists berdasarkan MAC (atau Ethernet)
address. Fitur ini dinonaktifkan secara default. Jika kita ingin mengontrol akses klien berdasarkan
alamat Ethernet, kita harus mengaktifkan fitur ini. Mengaktifkan ini adalah ide yang baik sambil belajar
squid.
--disable-htcp
         Hypertext Caching Protocol (HTCP) dapat digunakan oleh squid untuk mengirim dan menerima
cache yang dicernanya untuk cache tetangga. Opsi ini menonaktifkan dukungan HTCP.
--enable-ssl
       Squid dapat menghentikan koneksi SSL. Ketika Squid dikonfigurasi dalam mode reverse proxy,
Squid dapat menghentikan koneksi SSL dimulai oleh klien dan menanganinya atas nama web server di
backend. pada dasarnya ini berarti bahwa backend web server tidak akan memiliki untuk melakukan
pekerjaan SSL, yang berarti penghematan komputasi yang signifikan. Dalam hal ini, komunikasi antara
Squid dan backend web server akan menjadi HTTP murni, tapi klien masih akan melihatnya sebagai
koneksi aman dengan server web. Hal ini berguna hanya ketika Squid dikonfigurasi untuk bekerja pada
akselerator atau mode reverse proxy.
--enable-cache-digest
       Cache digests adalah cara Squid berbagi informasi dengan server Squid tetangga tentang cache
dokumen web, dalam format terkompresi.
--enable-default-err-language
       Setiap kali Squid menemukan kesalahan (misalnya, halaman tidak ditemukan, akses ditolak,
atau network unreachable error) yang harus disampaikan kepada klien, squid menggunakan halaman
default untuk menampilkan kesalahan ini. Halaman-halaman kesalahan tersedia dalam bahasa lokal.
Pilihan ini dapat digunakan untuk menentukan bahasa default untuk semua halaman kesalahan. Bahasa
default untuk halaman kesalahan adalah bahasa Inggris.
       ./configure –enable-default-err-language=Spanish
--enable-err-languages
       Secara default, squid membangun dukungan untuk semua bahasa yang tersedia. Jika kita hanya
ingin membangun Squid dengan bahasa yang kita kenal dengan, kita dapat menggunakan opsi ini.
Harap memeriksa errors/ pada direktori source code squid untuk bahasa yang tersedia.
       ./configure --enable-err-languages='English French German'
--disable-http-violations
       Squid memiliki pilihan konfigurasi, dan dengan menggunakan mereka, kita dapat memaksa
Squid untuk melanggar standar protokol HTTP dengan mengganti field header dalam permintaan atau
respons HTTP. Bermain-main dengan HTTP header bertentangan dengan norma HTTP standar. Kita
dapat menonaktifkan dukungan untuk segala macam pelanggaran HTTP dengan menggunakan opsi ini.
--enable-ipfw-transparent
       IPFIREWALL (IPFW) adalah aplikasi firewall untuk sistem FreeBSD, FreeBSD dikelola oleh
staf dan sukarelawan. Opsi ini berguna ketika mengatur Transparan Proxy Server pada sistem dengan
IPFW. Jika sistem kita tidak memiliki IPFW, kita harus menghindari menggunakan opsi ini, karena
Squid akan gagal dikompilasi. Perilaku default adalah auto-detect, yang melakukan pekerjaan dengan
cukup baik.
--enable-ipf-transparent
       Ipfilter (IPF) juga merupakan stateful firewall bagi banyak Unix-seperti sistem operasi. Hal ini
disediakan oleh NetBSD, Solaris, dan sebagainya. Jika sistem kita memiliki IPF, maka kita harus
mengaktifkan opsi ini untuk dapat mengkonfigurasi Squid dalam mode Transparan. Mengaktifkan opsi
ini dengan tidak adanya IPF pada sistem akan mengakibatkan kesalahan kompilasi.
--enable-pf-transparent
       Packet Filter (PF) adalah satu lagi aplikasi stateful firewall awalnya dikembangkan untuk
OpenBSD. Opsi ini berguna pada sistem dengan PF dipasang untuk mencapai mode Transparent Proxy.
Jangan aktifkan pilihan ini jika PF tidak diinstal.
--enable-linux-netfliter
       Netfilter merupakan kerangka penyaringan paket dalam kernel Linux dalam seri 2.4.x dan 2.6.x.
Opsi ini berguna untuk mengaktifkan dukungan Transparent Proxy pada sistem operasi berbasis Linux.
--enable-follow-x-forwarded-for
       Ketika sebuah permintaan HTTP diteruskan oleh proxy, proxy menulis informasi penting
tentang dirinya sendiri dan klien dimana permintaan tersebut sedang diteruskan, dalam header HTTP.
Opsi ini memungkinkan Squid untuk mencoba untuk pencarian alamat IP dari klien asli untuk dimana
permintaan itu diteruskan melalui satu atau lebih server proxy.
--disable-ident-lookups
       Hal ini untuk mencegah dari melakukan pencarian pada Squid ident atau mengidentifikasi
username untuk setiap koneksi. Menonaktifkan ini dapat mencegah sistem kita dari kemungkinan
serangan Denial Of Service oleh klien berbahaya yang meminta koneksi dalam jumlah besar.
--disable-internal-dns
       Squid memiliki implementasi sendiri pada DNS protokol dan mampu membangun query DNS.
Jika kita ingin menggunakan DNS internal squid, maka kita tidak harus menonaktifkan itu. Jika tidak,
kita dapat menonaktifkan dukungan untuk fitur internal DNS Squid dengan menggunakan opsi ini dan
dapat menggunakan server eksternal DNS.
--enable-default-hostsfile
       Menggunakan pilihan ini, kita dapat memilih lokasi default dari file host. Pada sistem operasi
pada umumnya, itu terletak di direktori /etc/ hosts.
       ./configure --enable-default-hostsfile=/some/other/location/hosts
--enable-auth
       Squid mendukung berbagai mekanisme autentikasi. Opsi ini memungkinkan dukungan untuk
skema autentikasi. Konfigurasi pilihan ini (dan berhubungan mengaktifkan opsi auth) sedang
mengalami perubahan.
Sintaks lama
       Sebelumnya, opsi ini digunakan untuk mengaktifkan dukungan autentikasi dan daftar skema
autentikasi ini juga berlalu. Skema Autentikasi dari daftar kemudian dibangun selama kompilasi.
       ./configure –enable-auth=basic,digest,ntlm
Sintaks baru
       Sekarang, pilihan ini hanya digunakan untuk mengaktifkan dukungan global untuk otentikasi
dan daftar skema otentikasi tidak diteruskan. Skema autentikasi diaktifkan dengan opsi --enable-auth-
AUTHENTICATION_SCHEME dimana AUTHENTICATION_SCHEME adalah nama dari skema
autentikasi. Secara default, semua skema autentikasi diaktifkan dan helper autentikasi yang sesuai
dibangun selama kompilasi. helper otentikasi (authentication helper) adalah program eksternal yang
dapat mengotentikasi klien menggunakan berbagai mekanisme autentikasi, terhadap database pengguna
yang berbeda.
       ./configure –enable-auth
--enable-auth-basic
       Opsi ini memungkinkan dukungan untuk skema Otentikasi Dasar dan membangun daftar helper
tertentu. Jika daftar helper tidak disediakan, Hal ini memungkinkan akan mengaktifkan semua helper
mungkin. Daftar helper yang tersedia untuk skema ini dapat ditemukan di helpers/basic_auth/ direktori
dalam source code squid. Untuk menonaktifkan skema autentikasi, kita dapat menggunakan --disable-
auth-basic.
       ./configure --enable-auth-basic=PAM,NCSA,LDAP
Jika kita ingin mengaktifkan opsi ini tetapi tidak ingin membangun semua helper, kita harus
menggunakan "none" di tempat dari daftar helper
       ./configure –enable-auth-basic=none
Sebelumnya, opsi ini dikenal sebagai –enable-basic-auth-helpers. Daftar helper dilewatkan dengan cara
yang sama.
       ./configure –enable-basic-auth-helpers=PAM,NCSA,LDAP
“Sintaks opsi lama dan baru untuk semua skema otentikasi lainnya yang serupa.”
--enable-auth-ntlm
       Squid mendukung skema otentikasi NTLM diaktifkan dengan pilihan ini. Helper yang tersedia
untuk skema ini berada di direktori helpers/ntlm_auth/ dalam source codesquid. Untuk menonaktifkan
dukungan autentikasi NTLM skema, gunakan opsi --disable-auth-ntlm .
       ./configure –enable-auth-ntlm=smb_lm,no_check
--enable-auth-negotiate
       Opsi ini memungkinkan skema Otentikasi Negotiate. Rincian dan sintaks mirip dengan opsi
skema otentikasi di atas.
       ./configure –enable-auth-negotiate=kerberos
--enable-auth-digest
       Opsi ini memungkinkan dukungan untuk skema Otentikasi Digest. Rincian lainnya mirip
dengan opsi di atas.
--enable-ntlm-fail-open
       Jika opsi ini diaktifkan dan helper gagal melakukan otentikasi pengguna, itu masih dapat
memungkinkan Squid untuk mengotentikasi pengguna. Pilihan ini harus digunakan dengan hati-hati
karena dapat mengakibatkan celah keamanan.
--enable-external-acl-helpers
       Squid mendukung ACL eksternal menggunakan helper. Jika kita bersedia untuk menggunakan
ACL eksternal, kita harus mempertimbangkan menggunakan opsi ini. Kita juga bisa menggunakan opsi
ini sambil belajar. Daftar helper ACL eksternal harus dilalui untuk membangun helper tertentu. Perilaku
default adalah untuk membangun semua helper yang tersedia. Sebuah daftar yang tersedia helper ACL
eksternal dapat ditemukan di direktori helpers/external_acl/ pada source code squid.
       ./configure –enable-external-acl-helpers=unix_group,ldap_group
--disable-translation
       Secara default, squid berusaha menyajikan kesalahan dan halaman manual dalam bahasa lokal.
Jika kita tidak ingin ini terjadi, maka kita dapat menggunakan opsi ini.
--disable-auto-locale
       Berdasarkan permintaan header klien, Squid mencoba untuk secara otomatis menyediakan
halaman kesalahan lokal. Kita dapat menggunakan pilihan ini untuk menonaktifkan lokalisasi otomatis.
Tag error_directory di file konfigurasi squid harus dikonfigurasi jika kita menggunakan opsi ini.
--disable-unlinkd
       unlinkd adalah proses eksternal yang digunakan untuk memutuskan tautan panggilan sistem.
Opsi ini menonaktifkan dukungan unlinkd di squid. Menonaktifkan unlinkd bukanlah ide yang baik
karena system call unlink dapat memblokir proses memakan waktu yang cukup banyak, yang dapat
menyebabkan keterlambatan dalam respons.
--with-default-user
       Kita biasanya tidak ingin menjalankan squid sebagai user root untuk menghilangkan risiko
keamanan. Secara default, squid berjalan sebagai user nobody. Namun, jika kita telah menginstal Squid
dari biner pre-compiled, Squid dapat menjalankan sebagai 'squid' atau 'proxy' pengguna tergantung
pada sistem operasi yang kita gunakan. Menggunakan pilihan ini, kita dapat mengatur default user
untuk menjalankan squid. Lihat contoh berikut bagaimana menggunakan opsi ini:
       ./configure –with-default-user=squid
--with-logdir
       Secara default, squid menulis semua laporan log dan kesalahan untuk file yang ditunjuk di $
{prefix}/var/logs/. Lokasi ini berbeda dari lokasi yang digunakan oleh semua proses lainnya dan
daemon untuk menulis log mereka. Dalam rangka untuk mendapatkan akses cepat ke log Squid, kita
mungkin ingin menempatkan mereka di direktori default sistem log, yang ini /var/log/ di sebagian besar
sistem operasi berbasis Linux. Lihat contoh sintaks berikut untuk melakukan hal ini:
       ./configure –with-logdir=/var/log/squid/
--with-pidfile
       Lokasi default untuk menyimpan file PID squid adalah ${prefix}/var/run/squid. pid, bukan
merupakan lokasi sistem standar untuk menyimpan file PID. Pada kebanyakan sistem operasi berbasis
Linux, file PID disimpan di /var/run/. Jadi, kita mungkin ingin mengubah lokasi default pidfile
menggunakan opsi berikut:
       ./configure –with-pidfile=/var/run/squid.pid
--with-aufs-threads
       Menggunakan pilihan ini, kita dapat menentukan jumlah thread untuk digunakan ketika sistem
penyimpanan aufs digunakan untuk mengelola direktori cache. Jika opsi ini tidak digunakan, squid
secara otomatis menghitung jumlah thread yang harus digunakan:
       ./configure –with-aufs-threads=12
--without-pthreads
       Versi Squid dibangun tanpa dukungan thread POSIX. Sekarang, Squid dibangun dengan
dukungan pthreads secara default, karena itu, jika kita tidak ingin mengaktifkan dukungan pthreads,
kita harus secara eksplisit menonaktifkan itu.
--with-openssl
       Jika kita ingin membangun Squid dengan dukungan OpenSSL, kita dapat menggunakan opsi ini
untuk menentukan path instalasi OpenSSL, jika tidak diinstal di lokasi default:
       ./configure –with-openssl=/opt/openssl/
--with-large-files
       Dalam lalu lintas yang padat, log file squid ini (terutama log akses) tumbuh dengan cepat dan
dalam jangka panjang ukuran file dapat menjadi cukup besar. Kita dapat menggunakan opsi ini untuk
mengaktifkan dukungan untuk file log besar.
“Untuk kinerja yang lebih baik, itu adalah praktik yang baik untuk memutar file-file log yang sering
bukannya pergi dengan file besar.”
--with-filedescriptors
       Sistem operasi menggunakan deskriptor file (pada dasarnya integer) untuk melacak file dan
soket yang terbuka. Secara default, ada batas pada jumlah deskriptor file, pengguna dapat
menggunakan (biasanya 1024). Begitu Squid sudah menerima koneksi yang telah dikonsumsi semua
deskriptor file yang tersedia untuk pengguna Squid, squid tidak dapat menerima koneksi lebih banyak,
kecuali beberapa file deskriptor yang dilepas. Di bawah beban(load) berat, squid sering kehabisan file
deskriptor. Kita dapat menggunakan pilihan berikut untuk mengatasi masalah kekurangan file
descriptor:
       ./configure –with-filedescriptors=8192
Kita juga perlu meningkatkan batas system-width pada jumlah deskriptor file yang tersedia untuk
pengguna.
Have a go hero – file descriptors
       Cari tahu jumlah maksimum deskriptor file yang tersedia untuk pengguna Anda. Juga, tuliskan
perintah yang akan menetapkan batas maksimum file deskriptor yang tersedia untuk 8192.
Solusi: Untuk memeriksa file deskriptor yang tersedia gunakan perintah berikut:
       ulimit -n
Untuk mengatur batas file descriptor dengan 8192, kita perlu menambahkan baris berikut di
/etc/security/limits.conf:
       username hard nofile 8192
       username soft nofile 8192
Tindakan ini hanya dapat dilakukan dengan hak root atau super user.
Saatnya untuk bertindak - menjalankan perintah configure
       Sekarang setelah kita telah memiliki sekilas tentang beberapa pilihan yang tersedia, kita dapat
layout pilihan untuk lingkungan dimana kita membangun squid. Sekarang, kita siap untuk menjalankan
perintah configure dengan opsi-opsi berikut:
   ./configure --prefix=/opt/squid/ --with-logdir=/var/log/squid/ --with- pidfile=/var/run/squid.pid
--enable-storeio=ufs,aufs --enable-removal- policies=lru,heap --enable-icmp --enable-
  useragent-log --enable-referer- log --enable-cache-digests –with-large-files
dan menghasilkan keputusan atas dasar library dan modul yang tersedia. configure menulis keluaran
debug ke file config.log dalam direktori yang sama. Ini adalah cara untuk memeriksa config.log untuk
setiap kesalahan yang mungkin terjadi saat menjalankan perintah configure. Jika semuanya berjalan
baik-baik saja, configure akan menghasilkan makefiles dalam beberapa direktori yang akan dibutuhkan
untuk kompilasi source code pada langkah berikutnya.
Apa yang baru saja terjadi?
       Menjalankan program configure dengan opsi-opsi yang disebutkan dalam contoh kode
sebelumnya, akan menghasilkan makefiles yang dibutuhkan untuk mengkompilasi source code dan
source code Squid dari modul diaktifkan. Ini juga akan menghasilkan config.log dan file config.status.
Semua pesan yang dihasilkan selama menjalankan program configure dicatat ke file config.log. File
config.status adalah eksekusi yang dapat dijalankan untuk menciptakan makefiles.
Have a go hero – debugging configure errors
       Dalam direktori source squid, jalankan perintah configure, seperti yang ditunjukkan dalam kode
berikut:
       ./configure –enable-storeio='aufs,disk'
Sekarang cobalah untuk memeriksa apa yang salah dan memperbaiki kesalahan.
Saatnya untuk bertindak - kompilasi source
       Setelah menentukan lingkungan kita dan membangun persyaratan, kita perlu melakukan
kompilasi aktual. Kompilasi source code sangat mudah dan hanya dengan menggunakan satu perintah:
       make
Kita tidak perlu menjadi root atau super user untuk menjalankan perintah ini. Perintah ini dapat
mengambil cukup banyak waktu untuk mengeksekusi, tergantung pada perangkat keras sistem.
Menjalankan make akan menghasilkan banyak output di terminal. Hal ini juga dapat menghasilkan
banyak peringatan kompilator yang aman dapat diabaikan dalam banyak kasus.
       Jika make berakhir dengan error, kita harus periksa bugzilla squid untuk masalah yang sama.
Kita dapat memperbarui sebuah bug yang ada dengan laporan kesalahan kita atau membuat laporan bug
baru jika tidak ada bug yang sama. Untuk rincian tentang pemecahan masalah dan menyelesaikan
laporan bug, silakan lihat Bab 12, Troubleshooting Squid .
       Jika make berakhir tanpa kesalahan, kita dapat dengan cepat melanjutkan ke tahap instalasi.
Kita juga dapat menjalankan make lagi untuk memverifikasi bahwa segala sesuatu dikompilasi dengan
sukses. Menjalankan make lagi akan menghasilkan banyak baris serupa dengan berikut ini:
       Making all in compat
       make[1]: Entering directory '/home/user/squid-source/compat'
       make[1]: Nothing to be done for 'all'.
       make[1]: Leaving directory '/home/user/squid-source/compat'
Apa yang baru saja terjadi?
       Kita baru saja menjalankan perintah make yang akan mengkompilasi source code dari Squid
dan modul yang terkait, untuk menghasilkan executable, jika selesai tanpa kesalahan. Executable yang
dihasilkan siap untuk diinstal sekarang.
Saatnya untuk bertindak - menginstal Squid
       Kompilasi yang sukses dari kode sumber dalam bagian sebelumnya akan menghasilkan
program yang dibutuhkan tergantung pada fitur dan paket telah kita aktifkan atau dinonaktifkan.
Namun, mereka harus dipindahkan ke lokasi yang telah ditentukan, sehingga mereka dapat digunakan.
Mari kita melakukan langkah-langkah akhir instalasi.
    1. Tergantung pada ${prefix} , kita mungkin perlu hak root atau super user untuk menginstal
        Squid. Jika root atau super user diperlukan, pertama kita harus beralih ke root atau super user
        dengan menggunakan perintah berikut:
        sudo su
    2. Sekarang semua yang perlu kita lakukan adalah untuk menjalankan perintah make dengan
        install sebagai argumen:
        make install
        Perintah ini akan menginstal atau hanya memindahkan program ke lokasi yang telah ditentukan,
        tergantung pada path yang digunakan dengan opsi --prefix saat menjalankan program configure.
Apa yang baru saja terjadi?
Kita baru saja belajar bagaimana untuk melakukan langkah terakhir dalam menginstal Squid, yang
menempatkan program-program yang dihasilkan dan file penting lainnya di lokasi yang telah
ditentukan.
       Mari kita melihat file dan direktori yang dihasilkan selama instalasi. Cara termudah untuk
memeriksa direktori dan file yang dihasilkan adalah dengan menggunakan perintah tree. Jika perintah
tree tidak tersedia, kita bisa melihat daftar file dengan menggunakan perintah ls juga.
tree ${prefix} | less
${prefix} adalah direktori yang digunakan dengan opsi --prefix saat configure. Sekarang mari kita
memiliki gambaran singkat di file penting yang dihasilkan oleh squid saat instalasi. Semua direktori
dan file berikut terdaftar, berada di ${prefix}:
bin
Direktori ini berisi program-program yang dapat dieksekusi atau dijalankan oleh pengguna tanpa hak
root atau super user.
bin/squidclient
squidclient adalah klien HTTP dengan kemampuan canggih, yang memungkinkan untuk melakukan
permintaan HTTP untuk menguji server Squid. Jalankan squidclient untuk memeriksa pilihan yang
tersedia:
          ${prefix}/bin/squidclien
etc
Ini adalah tempat di mana untuk semua file konfigurasi yang berkaitan dengan Squid berada.
“Ini adalah ide yang baik untuk menggunakan pilihan --sysconfdir=/etc/squid/ dengan configure,
sehingga Anda dapat berbagi konfigurasi pada instalasi squid yang berbeda saat pengujian.”
etc/squid.conf
Ini adalah lokasi default untuk file konfigurasi squid. File squid.conf dihasilkan selama instalasi ini
merupakan konfiguasi minimum yang dibutuhkan untuk Squid untuk digunakan. Kita selalu membuat
perubahan pada file ini jika kita perlu mengubah konfigurasi squid.
etc/squid.conf.default
Squid menghasilkan file konfigurasi default ini sehingga kita dapat menyalin dan rename menjadi
squid.conf dan mulai lagi.
etc/squid.conf.documented
Ini adalah versi yang didokumentasikan dengan lengkap dari squid.conf, berisi ribuan baris komentar.
Kita harus selalu merujuk ke file ini untuk tag konfigurasi yang tersedia untuk versi Squid yang telah
kita instal.
libexec
Direktori ini berisi program pembantu(helper) dibangun selama kompilasi squid.
libexec/cachemgr.cgi
Program CGI menyediakan antarmuka web untuk mengelola cache Squid yang disebut Cache Manajer.
Sbin
Direktori ini berisi program-program yang hanya dapat dieksekusi oleh root atau user dengan hak akses
super user.
sbin/squid
Ini adalah program Squid yang sebenarnya, yang umumnya dijalankan sebagai daemon.
share
Ini adalah lokasi untuk template halaman error, dokumentasi, dan file lain yang digunakan oleh squid.
share/errors
Direktori ini berisi template halaman kesalahan lokal. Template adalah halaman HTML dan kita dapat
menyesuaikan pesan kesalahan yang ditampilkan oleh Squid, dengan memodifikasi template HTML
ini.
share/icons
Direktori ini berisi sejumlah gambar kecil yang digunakan untuk daftar direktori FTP atau Gopher.
share/man
Ini adalah tempat di mana halaman manual untuk squid squidclient, dan helper dibangun selama
kompilasi. man adalah halaman manual atau halaman bantuan yang dapat dilihat dengan menggunakan
perintah man (tersedia di semua Linux / Unix distribusi). Untuk melihat halaman manual yang terletak
di /opt/squid/ share/man/man8/squid.8 , kita dapat menggunakan perintah man sebagai berikut:
        man /opt/squid/share/man/man8/squid.8
Untuk rincian lebih lanjut tentang halaman manual, silakan kunjungi
http://en.wikipedia.org/wiki/Man_page.
var
Sebuah tempat untuk file yang sering berubah ketika squid berjalan.
var/cache
Ini adalah direktori default untuk menyimpan dokumen-dokumen web cache pada hard disk.
var/logs
Ini adalah default home untuk semua file log (seperti cache.log, access.log, dan sebagainya) yang
digunakan oleh squid.
Apa yang baru saja terjadi?
        Kita baru saja melihat berbagai file dan direktori yang dihasilkan selama instalasi dan gambaran
singkat tentang apa isi dari setiap direktori.
Installing Squid dari paket binary
        Paket binary Squid tersedia dalam repositori perangkat lunak pada kebanyakan sistem operasi
dan kita dapat menginstal mereka dengan menggunakan manajer paket yang disediakan oleh sistem
operasi masing-masing. Selanjutnya, kita akan melihat bagaimana menggunakan manajer paket pada
beberapa sistem operasi untuk menginstal Squid.
“Versi terbaru atau beta mungkin tidak tersedia dalam repositori perangkat lunak dari semua sistem
operasi. Dalam kasus tersebut, kita harus mendapatkan versi terbaru atau beta dari situs squid, seperti
yang dijelaskan sebelumnya dalam bab ini.”
Fedora, CentOS or Red Hat
Yum adalah manajer paket yang populer pada sistem operasi berbasis RPM. Squid RPM tersedia di
Fedora, CentOS, dan repositori Red Hat. Untuk menginstal Squid, kita tinggal bisa menggunakan
perintah berikut:
       yum install squid
Debian or Ubuntu
Kita dapat menggunakan apt-get untuk menginstal Squid di Debian atau Ubuntu:
       apt-get install squid3
FreeBSD
Squid tersedia dalam koleksi port FreeBSD. Perintah berikut dapat digunakan untuk menginstal Squid
pada FreeBSD:
       pkg_add -r squid31
Untuk informasi lebih lanjut tentang manajemen paket di FreeBSD, silahkan kunjungi
http://www.freebsd.org/doc/handbook/packages-using.html.
OpenBSD or NetBSD
menginstal squid di OpenBSD atau NetBSD mirip dengan menginstal pada FreeBSD dan dapat
dilakukan dengan menggunakan perintah berikut:
       pkd_add squid31
Untuk mempelajari lebih lanjut tentang sistem manajemen paket pada OpenBSD dan NetBSD, silakan
lihat http://www.openbsd.org/ports.html#Get dan
http://www.netbsd.org/docs/pkgsrc/using.html#installing-binary-packages masing-masing.
Dragonfly BSD
Untuk menginstal squid di Dragonfly BSD, kita dapat menggunakan perintah berikut:
       pkg_radd squid31
Untuk informasi lebih lanjut tentang cara menginstal paket biner pada Dragonfly BSD, silakan
kunjungi http://www.dragonflybsd.org/docs/newhandbook/pkgsrc/ .
Gentoo
Kita dapat menginstal Squid di Gentoo Linux dengan perintah emerge, seperti yang ditunjukkan berikut
ini: emerge =squid-3.1*
Arch Linux
       Untuk menginstal squid di Arch Linux, kita dapat menggunakan pengelola paket pacman,
seperti terlihat pada perintah berikut:
       pacman -S squid
Untuk informasi lebih lanjut tentang pacman, silakan kunjungi
https://wiki.archlinux.org/index.php/Pacman.

                                                                                  Quick start
       Sebelum kita mengeksplorasi file konfigurasi secara rinci, mari kita lihat konfigurasi minimal
yang Anda akan butuhkan untuk memulai. Bersiaplah dengan file konfigurasi yang terletak di
/opt/squid/etc/squid.conf. Karena kita akan membuat perubahan dan penambahan yang diperlukan
secara cepat setting server proxy yang minimal.
       cache_dir ufs /opt/squid/var/cache/ 500 16 256
       acl my_machine src 192.0.2.21 # Replace with your IP address
       http_access allow my_machine
       Kita harus menambahkan baris sebelumnya di bagian atas file konfigurasi saat ini kita
(memastikan bahwa kita mengubah alamat IP yang sesuai). Sekarang, kita perlu menciptakan direktori
cache. Kita dapat melakukannya dengan menggunakan perintah berikut:
       $ /opt/squid/sbin/squid -z
Kita sekarang sudah siap untuk menjalankan server proxy kita, dan ini dapat dilakukan dengan
menjalankan perintah berikut:
       $ /opt/squid/sbin/squid
       Squid akan mulai mendengarkan pada port 3128 (default) pada semua antarmuka jaringan pada
komputer kita. Sekarang kita dapat mengkonfigurasi browser kita untuk menggunakan Squid sebagai
proxy server HTTP dengan host sebagai alamat IP komputer kita dan port 3128.
       Setelah browser dikonfigurasi, coba browsing ke http://www.example.com/. Itu saja! Kita telah
mengkonfigurasi      Squid    sebagai     server   proxy   HTTP!   Sekarang   mencoba   browse    ke
http://www.example.com:897/ dan mengamati pesan yang Anda terima. Pesan yang ditampilkan adalah
akses ditolak pesan yang dikirim kepada Anda oleh Squid.
Sekarang, mari kita lanjutkan untuk memahami file konfigurasi secara rinci.
Sintaks dari file konfigurasi
File konfigurasi squid ini pada normalnya dapat ditemukan pada direktori /etc/squid/squid.conf ,
/usr/local/squid/etc/squid.conf , atau $ ${prefix}/etc/squid.conf dimana ${prefix} adalah nilai untuk
opsi --prefix, yang dilewatkan ke perintah configure sebelum kompilasi squid.
Dalam versi baru squid, versi didokumentasikan dari squid.conf, yang dikenal sebagai squid.
conf.documented, dapat ditemukan bersama squid.conf. Dalam bab ini, kita akan membahas beberapa
perintah impor yang tersedia di file konfigurasi. Untuk penjelasan rinci tentang semua perintah yang
digunakan dalam file konfigurasi, silakan cek http://www.squid-cache.org/Doc/config/.
        Sintaks untuk file konfigurasi Squid documented mirip dengan program lainnya untuk Linux/
Unix. Secara umum, ada beberapa baris komentar yang berisi dokumentasi terkait yang berguna
sebelum setiap perintah digunakan dalam file konfigurasi. Hal ini membuat lebih mudah untuk
memahami dan mengkonfigurasi perintah, bahkan untuk orang yang tidak biasa mengkonfigurasi
aplikasi yang menggunakan file-file konfigurasi. Biasanya, kita hanya perlu membaca komentar dan
menggunakan opsi yang sesuai dan tersedia untuk perintah tertentu.
Baris dimulai dengan karakter # diperlakukan sebagai komentar dan benar-benar diabaikan oleh squid
ketika parsing file konfigurasi. Selain itu, setiap baris kosong juga diabaikan.
       # Test comment. This and the above blank line will be ignored by
       Squid.
Mari kita lihat potongan dari file konfigurasi documented (squid.conf.documented).
       # TAG: cache_effective_user
       # If you start Squid as root, it will change its effective/real
       # UID/GID to the user specified below. The default is to change
       # to UID of nobody.
       # see also; cache_effective_group
       #Default:
       # cache_effective_user nobody
Dalam potongan sebelumnya, baris pertama menyebutkan nama direktif, yang dalam hal ini,
cache_effective_user. Baris berikut tag line memberikan informasi singkat tentang penggunaan
Instruksi. Baris terakhir berisi nilai default untuk direktif ini, jika tidak di tentukan.
Jenis perintah
        Sekarang, mari kita lihat sekilas berbagai jenis perintah dan nilai-nilai yang dapat
ditentukan.
Single valued directives
        Ini adalah perintah yang mengambil hanya satu nilai. Petunjuk-petunjuk ini tidak boleh
digunakan beberapa kali di file konfigurasi karena kejadian terakhir dari perintah akan menimpa semua
deklarasi sebelumnya. Sebagai contoh, logfile_rotate harus ditentukan hanya sekali.
        logfile_rotate 10
        # Few lines containing other configuration directives
        logfile_rotate 5
Dalam kasus ini, 5 logfile_rotate akan dibuat ketika kita memicu squid untuk memutar sebuah file log.
Boolean-valued or toggle directives
        Ini juga petunjuk bernilai tunggal(single value), tetapi instruksi ini umumnya digunakan untuk
mengaktifkan atau menonaktifkan fitur.
        query_icmp on
        log_icp_queries off
        url_rewrite_bypass off
Kita menggunakan perintah ketika kita perlu mengubah perilaku default.
Multi-valued directives
        Perintah(direktif) jenis ini secara umum mengambil satu atau lebih dari satu nilai. Kita dapat
menentukan semua nilai pada satu baris setelah perintah tersebut atau kita dapat menuliskannya pada
beberapa baris dengan direktif berulang setiap waktu. Semua nilai-nilai untuk direktif yang
dikumpulkan dari baris yang berbeda:
        hostname_aliases proxy.exmaple.com squid.example.com
Secara opsional, kita dapat melewatinuliskan perintah diatas pada baris yang berbeda sebagai berikut:
        dns_nameservers proxy.example.com
        dns_nameservers squid.example.com
Kedua     potongan    kode    sebelumnya   akan    menginstruksikan     Squid   untuk    menggunakan
proxy.example.com dan squid.example.com sebagai alias untuk nama host dari server proxy kita.
Directives with time as a value
        Ada beberapa instruksi yang mengambil nilai-nilai dengan waktu sebagai unit. Squid
memahami kata-kata detik, menit, jam, dan seterusnya, dan ini dapat diakhiri dengan nilai-nilai
numerik untuk menentukan nilai yang sebenarnya. Sebagai contoh:
        request_timeout 3 hours
        persistent_request_timeout 2 minutes
Directives with file or memory size as values
        Nilai yang dikirimkan untuk instruksi ini umumnya diakhiri dengan unit ukuran file atau
memori seperti byte, KB, MB, atau GB. Sebagai contoh:
        reply_body_max_size 10 MB
cache_mem 512 MB
       maximum_object_in_memory 8192 KB
Sebagaimana kita telah familiar dengan sintaks file konfigurasi sekarang, mari kita buka file squid.conf
dan belajar tentang direktif yang sering digunakan.
Have a go hero – categorize the directives
       Buka file konfigurasi squid documented dan menemukan setidaknya tiga instruksi dari tiap jenis
yang kita bahas sebelumnya. Jangan gunakan direktif yang sudah digunakan dalam contoh.

HTTP port
       Direktif ini digunakan untuk menentukan port dimana squid akan mendengarkan untuk koneksi
klien. Secara default adalah untuk mendengarkan pada port 3128 pada semua interface yang tersedia
pada mesin.
Waktu untuk tindakan - pengaturan port HTTP
       Sekarang, kita akan melihat berbagai cara untuk mengatur port HTTP dalam file squid.conf:
   •   Dalam bentuk yang paling sederhana, kita hanya menentukan port yang kita ingin Squid untuk
       mendengarkan:
       http_port 8080
   •   Kita juga dapat menentukan alamat IP dan kombinasi port yang kita ingin Squid untuk
       mendengarkan. Kita biasanya menggunakan pendekatan ini ketika kita memiliki beberapa
       interface pada mesin kita dan kita ingin Squid untuk mendengarkan hanya pada interface yang
       terhubung ke Local Area Network(LAN):
       http_port 192.0.2.25:3128
       Hal ini akan menginstruksikan Squid untuk mendengarkan pada port 3128 pada interface
       dengan alamat IP 192.0.2.25.
   •   Bentuk lain di mana kita dapat menentukan http_port adalah dengan menggunakan kombinasi
       nama host dan port:
       http_port myproxy.example.com:8080
       Hostname akan diterjemahkan ke alamat IP oleh Squid dan kemudian Squid akan
       mendengarkan pada port 8080 pada alamat IP tertentu.
       Aspek lain dari direktif ini adalah bahwa, ia dapat mengambil beberapa nilai pada baris
       terpisah. Mari kita lihat apa yang akan dilakukan baris berikut:
       http_port 192.0.2.25:8080
       http_port lan1.example.com:3128
http_port lan2.example.com:8081
       Baris ini akan memicu Squid untuk mendengarkan pada tiga alamat IP yang berbeda dan
       kombinasi port. Pada umumnya membantu ketika kita memiliki klien di LAN yang berbeda,
       yang dikonfigurasi untuk menggunakan port yang berbeda untuk server proxy.
   •   Dalam versi terbaru dari Squid, kita juga dapat menentukan modus operasi seperti intercept,
       tproxy, accel, dan sebagainya.
       Modus Intercept akan mendukung permintaan intersepsi tanpa perlu mengkonfigurasi mesin
       klien. Kita akan belajar lebih banyak tentang proxy server intersepsi pada Bab 10, squid dalam
       Mode Intercept.
       tproxy modus digunakan untuk mengaktifkan dukungan proxy Linux Transparan untuk koneksi
       outgoing spoofing menggunakan alamat IP klien.
       http_port 8080 tproxy
       “Kita harus memperhatikan bahwa mengaktifkan mode intercept atau tproxy menonaktifkan
       beberapa mekanisme autentikasi. Juga, IPv6 didukung untuk tproxy tetapi membutuhkan versi
       kernel yang sangat baru. IPv6 tidak didukung dalam modus intercept.”
       Accelerator modus diaktifkan menggunakan modus accel. Ini adalah ide yang baik untuk
       mendengarkan pada port 80, jika kita mengkonfigurasi Squid dalam mode akselerator. Mode ini
       tidak dapat digunakan seperti itu. Kita harus menentukan setidaknya satu website kita ingin
       mempercepat. Kita akan belajar lebih banyak tentang modus akselerator dalam Bab 9, squid
       dalam Mode Accelerator.
       http_port 80 accel defaultsite=website.example.com
       “Kita harus mengatur port HTTP hati-hati karena port standar seperti 3128 atau 8080 dapat
       menimbulkan risiko keamanan jika kita tidak dapat mengamankan port dengan benar. Jika kita
       tidak ingin menghabiskan waktu pada pengamanan port, kita dapat menggunakan nomor port
       acak di atas 10000.”
Apa yang baru saja terjadi?
       Pada bagian ini, kita belajar tentang penggunaan dari salah satu arahan yang paling penting,
yaitu, http_port. Kita telah belajar tentang berbagai cara di mana kita dapat menentukan port HTTP,
tergantung pada kebutuhan. Kita dapat memaksa Squid untuk mendengarkan pada beberapa interface
dan port yang berbeda, pada antarmuka yang berbeda.

Access control lists
       Access Control Lists (ACL) adalah elemen dasar untuk kontrol akses dan biasanya digunakan
dalam kombinasi dengan perintah lain seperti http_access, icp_access, dan sebagainya, untuk
mengontrol akses ke berbagai komponen Squid dan sumber daya web. ACL mengidentifikasi transaksi
web dan kemudian instruksi seperti http_access, cache, dan kemudian memutuskan apakah transaksi
tersebut harus diizinkan atau tidak. Juga, kita harus mencatat bahwa instruksi terkait dengan akses
sumber daya umumnya berakhir dengan _access.
       Setiap definisi access control list harus memiliki nama dan jenis, diikuti oleh nilai-nilai untuk
jenis ACL tertentu:
       acl ACL_NAME ACL_TYPE value
       acl ACL_NAME ACL_TYPE "/path/to/filename"
Nilai-nilai untuk setiap nama baik ACL dapat ditentukan langsung setelah ACL_TYPE atau Squid
dapat membacanya dari sebuah file terpisah. Di sini kita harus mencatat bahwa nilai-nilai dalam file
harus ditulis sebagai salah satu nilai per baris.
Time for action – constructing simple ACLs
Mari kita membangun sebuah daftar access control untuk nama domain example.com:
       acl example_site dstdomain example.com
Dalam kode ini, example_site adalah nama dari ACL dengan tipe dstdomain, yang mencerminkan
bahwa nilai, example.com, adalah nama domain.
Sekarang jika kita ingin membangun sebuah access control list yang dapat mencakup banyak situs
contoh, kita memiliki tiga cara berikut kemungkinan untuk melakukannya:
    1. Nilai pada satu baris: Kita dapat menentukan semua nilai yang mungkin pada satu baris:
        acl example_sites dstdomain example.com example.net example.org
        Ini bekerja dengan baik asalkan hanya ada beberapa nilai.
    2. Nilai pada banyak baris: Dalam kasus daftar nilai-nilai yang kita ingin tentukan tumbuh secara
        signifikan, kita dapat membagi daftar dan menuliskan nilai pada beberapa baris:
        acl example_sites dstdomain example.com example.net
        acl example_sites dstdomain example.org
    3. Nilai dari sebuah file: Jika kasus jumlah nilai yang ingin kita tentukan cukup besar, kita bisa
        menempatkan mereka dalam sebuah file yang didedikasikan dan kemudian menginstruksikan
        Squid untuk membaca nilai dari file tertentu:
        acl example_sites dstdomain '/opt/squid/etc/example_sites.txt'
        Kita dapat menempatkan file example_sites.txt dalam direktori yang sama dengan squid.conf
        sehingga mudah untuk menemukan. Isi dari file example_sites.txt harus sebagai berikut:
# This file can also have comments
       # Write one value (domain name) per line
       example.net
       example.org # Temporarily remove example.org from example_sites
       acl
       example.com
       Nama ACL adalah case-insensitive dan multi-nilai. Jadi kita dapat menggunakan mereka,
       beberapa kali, dan nilai-nilai akan agregat:
             acl NiCe_NaMe src 192.0.2.21
             acl nIcE_nAmE src 192.0.2.23
       Kode ini tidak mewakili dua access control list yang berbeda. Ini hanya satu ACL dengan dua
       alamat, yaitu, 192.0.2.21 dan 192.0.2.23, sebagai nilai-nilai.
       “Kita harus hati-hati perhatikan bahwa salah satu nama ACL tidak dapat digunakan dengan
       lebih dari satu jenis ACL.
       acl destination dstdomain example.com
       acl destination dst 192.0.2.24
       Kode di atas tidak valid karena menggunakan nama tujuan ACL di dua ACL yang berbeda
       jenis.”
       Contoh-contoh sebelumnya dari access list sangat dasar dan sederhana hanya untuk permulaan.
       Kita akan mengeksplorasi daftar akses dan kontrol dalam Bab 4, Chapter 4, Getting Started with
       Squid's Powerful ACLs and Access Rules
Apa yang baru saja terjadi?
       Kita baru saja belajar untuk membuat beberapa ACL dstdomain sederhana dari jenis ACL, yang
mengidentifikasi domain tujuan dalam permintaan.
Have a go hero – understanding the pre-defined ACLs
       Langsung ke bagian ACL di file konfigurasi Squid dan mencoba untuk memahami ACL
disediakan oleh Squid, secara default.
Mengontrol akses ke server proxy
       Saat Squid berjalan pada server kita, dapat diakses dengan beberapa cara misalnya, melalui web
browsing normal oleh pengguna akhir atau sebagai induk atau server proxy yang sibling oleh proxy
server tetangga. Squid menyediakan berbagai petunjuk untuk mengontrol akses ke sumber daya yang
berbeda. Berikutnya, kita akan belajar tentang pemberian atau mencabut akses ke sumber daya yang
berbeda.
HTTP akses kontrol
ACL hanya membantu dalam mengidentifikasi permintaan berdasarkan aturan yang berbeda. ACL
tidak berguna dengan sendirinya, mereka harus dikombinasikan dengan perintah kontrol akses untuk
membolehkan atau menolak akses ke berbagai sumber daya. http_access adalah salah satu direktif
seperti yang digunakan untuk memberikan akses untuk melakukan transaksi HTTP melalui squid.
Mari kita lihat sintaks dari http_access:
       http_access allow|deny [!]ACL_NAME
Mari kita lihat sintaks dari http_access:
Menggunakan http_access, kita bisa membolehkan atau menolak akses ke transaksi HTTP melalui
squid. Para ACL_NAME dalam kode menandakan permintaan yang mengakses harus diberikan atau
dicabut. Jika tanda seru (!) Diawali dengan ACL_NAME, akses akan diberikan atau dicabut untuk
semua permintaan yang tidak diidentifikasi oleh
ACL_NAME.
Saatnya untuk bertindak - ACL menggabungkan dan HTTP akses
Mari kita lihat pada beberapa kasus untuk mengendalikan akses HTTP menggunakan ACL misalnya.
Ketika kita memiliki beberapa aturan akses, squid cocok dengan sebuah permintaan tertentu terhadap
mereka dari atas ke bawah dan terus melakukannya sampai tindakan tertentu (mengizinkan atau
menolak) ditentukan. Harap dicatat bahwa jika kita memiliki beberapa ACL dalam aturan akses
tunggal, maka permintaan yang cocok dengan semua ACL dari kiri ke kanan, dan proses Squid
berhenti aturan dengan cepat menemukan sebuah ACL yang tidak dapat mengidentifikasi permintaan.
Aturan akses dengan hasil beberapa ACL dalam sebuah tindakan tertentu, hanya jika permintaan
diidentifikasi oleh semua ACL yang digunakan dalam aturan.
       acl my_home_machine src 192.0.2.21
       acl my_lab_machine src 198.51.100.86
       http_access allow my_home_machine
       http_access allow my_lab_machine
ACL dan aturan akses dalam kode sebelumnya akan memungkinkan host 192.0.2.21 dan 198.51.100.86
untuk mengakses server proxy. Aturan akses tersebut juga dapat ditulis sebagai:
       acl my_machines src 192.0.2.21 198.51.100.86
       http_access allow my_machines
Perilaku default adalah untuk memungkinkan akses ke semua klien dalam jaringan area lokal dan
menolak akses ke semua klien lain. Jika kita ingin klien (yang tidak dalam jaringan area lokal kita)
untuk dapat menggunakan server proxy kita, kita harus menambahkan aturan akses tambahan untuk
memungkinkan mereka.
Perilaku default dari kontrol akses HTTP sedikit rumit jika akses untuk klien tidak dapat diidentifikasi
oleh salah satu aturan akses. Dalam kasus tersebut, perilaku standar adalah untuk melakukan
kebalikan dari aturan akses terakhir. Jika aturan akses terakhir adalah menolak, maka tindakan akan
menjadi memungkinkan akses begitu pun sebaliknya. Oleh karena itu, untuk menghindari kebingungan
atau perilaku yang tidak diinginkan, ini adalah praktek yang baik untuk menambahkan baris menolak
semua setelah aturan akses.
       http_access deny all
Semua parameter elemen ACL khusus yang disediakan oleh Squid dan itu mewakili semua alamat IP.
Baris ini akan menolak akses dari semuanya. Karena ini berjalan setelah semua aturan akses lainnya,
permintaan dari klien yang tidak dikenal akan ditolak.
Apa yang baru saja terjadi?
Kita belajar untuk menggabungkan ACL dengan direktif http_access untuk membolehkan atau
menolak akses ke klien. Kita juga belajar bagaimana kelompok ACL yang berbeda dari jenis yang
sama dan kemudian menggunakannya untuk mengontrol akses.
HTTP reply access
Balasan HTTP adalah respon yang diterima dari server web sesuai dengan permintaan diinisiasi oleh
klien. Menggunakan direktif http_reply_access, kita dapat mengontrol akses terhadap jawaban yang
diterima. Sintaks dari http_reply_access mirip dengan http_access.
       http_reply_access allow|deny [!]ACL_NAME
Direktif ini menimpa sebagian izin yang diberikan oleh http_access. Mari kita lihat contoh:
       acl my_machine src 192.0.2.21
       http_access allow my_machine
       http_reply_access deny my_machine
Kita telah mengizinkan http_access ke host 192.0.2.21 tapi tetap saja tidak akan dapat mengakses situs
dengan benar seperti itu tidak diperbolehkan untuk menerima balasan. Host hanya bisa membuat
permintaan ke server proxy untuk dokumen web tetapi tidak akan menerima jawaban apapun.
Direktif ini biasanya digunakan untuk menolak akses untuk jenis konten seperti audio, video, dan
sebagainya, untuk mencegah pengguna dari mengakses konten media.
Kita harus benar-benar berhati-hati saat menggunakan direktif http_reply_access. Ketika permintaan
diijinkan oleh http_access, Squid akan menghubungi server asli, bahkan jika aturan dengan direktif
http_reply_access menyangkal respon. Hal ini dapat mengakibatkan masalah keamanan serius.
Sebagai contoh, perhatikan klien menerima URL jahat, yang dapat mengirimkan informasi penting
pribadi seorang klien menggunakan metode HTTP POST. Jika permintaan klien melewati aturan
http_access tetapi tidak mendapatkan respon ditolak oleh aturan http_reply_access, maka client akan
berada di bawah mengira bahwa tidak ada yang terjadi namun hacker akan memiliki cerdik mencuri
informasi pribadi klien kita.
ICP access
Direktif ini digunakan untuk mengontrol akses query dengan cache sekitar kita menggunakan Internet
Cache Protocol (ICP). Pada dasarnya memungkinkan atau menolak akses ke port ICP. Sintaks mirip
dengan http_access dan perilaku standar adalah untuk menolak semua permintaan ICP.
       icp_access allow|deny [!]ACL_NAME
HTCP access
Menggunakan direktif ini, kita dapat mengontrol apakah Squid akan merespon permintaan HTCP
tertentu atau tidak. Sintaks mirip dengan http_access dan perilaku standar adalah untuk menolak semua
permintaan.
HTCP CLR access
Cache yang berdekatan dapat membuat permintaan untuk membersihkan atau menghapus objek cache
dalam bentuk permintaan HTCP CLR. Direktif htcp_clr_access dapat digunakan untuk memberikan
akses membersihkan cache hanya kepada rekan terpercaya.
Miss access
Direktif ini digunakan untuk menentukan rekan-rekan atau klien cache semua dapat menggunakan
sebagai cache induk mereka. Ketika rekan cache atau klien mencoba untuk mengambil konten
menggunakan server proxy kita, permintaan dapat mengakibatkan LEWATKAN (tidak ada dalam
cache) atau HIT (dapat dipenuhi dari cache kita). Umumnya, sebuah LEWATKAN diambil oleh server
kita atas nama klien atau rekan. Jika kita tidak ingin klien kita atau rekan-rekan untuk mengambil
konten menggunakan proxy kita, maka kita dapat menggunakan direktif miss_access, seperti yang
ditunjukkan:
       acl bad_clients src 192.0.2.0/24
       miss_access deny bad_clients
       miss_access allow all
Kode ini tidak akan mengizinkan bad_clients untuk menggunakan proxy server kita sebagai induk
proxy. Perilaku default adalah untuk memungkinkan semua klien yang lewat aturan http_access untuk
menggunakan server proxy sebagai induk.
Catatan:
Tembolok (Inggris: 'cache') dalam teknologi informasi adalah mekanisme penyimpanan data sekunder
berkecepatan tinggi yang digunakan untuk menyimpan data / instruksi yang sering diakses. Memori
cache dimaksudkan untuk memberi kecepatan memori yang mendekati memori yang paling cepat yang
bisa diperoleh, dan pada waktu yang sama menyediakan kapasitas memori yang besar dengan harga
yang lebih murah dari jenis-jenis memori semikonduktor. Jika data yang diminta yang terkandung
dalam cache (cache hit), permintaan ini dapat dilayani hanya dengan membaca cache, yang relatif
lebih cepat. Jika tidak (cache miss), data harus menghitung ulang atau diambil dari lokasi penyimpanan
aslinya, yang relatif lebih lambat. Oleh karena itu, semakin besar jumlah permintaan yang dapat
dilayani dari cache, semakin cepat kinerja sistem secara keseluruhan
Ident lookup access
Direktif ini yang menentukan atau tidak Squid harus melakukan lookup username untuk permintaan
klien TCP.
       acl ident_aware_hosts src 192.0.2.0/24
       ident_lookup_access allow ident_aware_hosts
       ident_lookup_access deny all
Kode ini akan memungkinkan Squid untuk melakukan lookup ident hanya untuk ident_aware_hosts.
Seting default tidak melakukan lookup ident bagi semua permintaan.
Hanya TC/IP berbasis ACL didukung dengan direktif ini.
Cache peers or neighbors
Cache teman atau tetangga adalah server proxy lain yang Squid proxy server kita dapat:
Berbagi cache untuk mengurangi penggunaan bandwidth dan waktu akses
Gunakan sebagai induk atau saudara server proxy untuk memenuhi permintaan klien '
Gunakan sebagai induk atau server proxy yang saudara
Kita biasanya menggunakan lebih dari satu server proxy dalam jaringan yang sama untuk berbagi
beban dari sebuah server tunggal untuk kinerja yang lebih baik. Server proxy dapat menggunakan
cache masing-masing untuk mengambil dokumen-dokumen web cache lokal untuk meningkatkan
kinerja. Mari kita lihat sekilas arahan yang diberikan oleh squid untuk komunikasi antara rekan-rekan
cache yang berbeda.
Declaring cache peers (Mendeklarasikan Cache rekan-rekan)
Direktif cache_peer digunakan untuk memberitahu squid tentang proxy server di sekitar kita. Mari kita
melihat sekilas pada sintaks untuk direktif ini:
cache_peer HOSTNAME_OR_IP_ADDRESS TYPE PROXY_PORT ICP_PORT [OPTIONS]
Dalam kode ini, HOSTNAME_OR_IP_ADDRESS adalah alamat host atau IP dari server proxy target
atau rekan cache. JENIS menentukan jenis server proxy, yang pada gilirannya, menentukan bagaimana
proxy server akan digunakan oleh server proxy kita. Server proxy lain dapat digunakan sebagai induk,
sibling, atau anggota dari kelompok multicast.
Saatnya untuk bertindak - menambahkan peer cache
Mari kita menambahkan server proxy (parent.example.com) yang akan bertindak sebagai proxy ke
server proxy induk kita:
       cache_peer parent.example.com parent 3128 3130 default proxy-only
3130 adalah port ICP standar. Jika server proxy lain tidak menggunakan ICP port standar, kita harus
mengubah kode yang sesuai. Kode ini akan mengarahkan Squid untuk menggunakan
parent.example.com sebagai server proxy untuk memenuhi permintaan klien dalam kasus itu tidak
mampu melakukannya sendiri.
Opsi default menetapkan bahwa rekan Cache harus digunakan sebagai upaya terakhir dalam skenario di
mana rekan-rekan lainnya tidak dapat dihubungi. Pilihan proxy-only menentukan bahwa konten
diambil menggunakan peer ini tidak harus di-cache lokal. Hal ini bermanfaat ketika kita tidak ingin
mereplikasi dokumen web cache, terutama ketika dua rekan-rekan yang terhubung dengan backbone
bandwidth tinggi.
Apa yang baru saja terjadi?
       Kita menambahkan parent.example.com sebagai rekan cache atau proxy induk ke server Squid
proxy kita. Kita juga menggunakan pilihan proxy-only, yang berarti permintaan yang diambil
menggunakan rekan cache tidak akan di-cache di server proxy kita.
       Ada beberapa opsi lain di mana anda dapat menambahkan rekan cache, untuk berbagai tujuan,
seperti, sebuah hirarki. Kita akan membahas rekan cache lebih rinci dalam Bab 8, Membangun Hirarki
Cache Squid.
Membatasi Dengan cepat akses menuju domain menggunakan peer
       Jika kita telah menambahkan beberapa proxy server sebagai peer Cache ke server Squid kita,
kita mungkin memiliki keinginan untuk memiliki sedikit kontrol atas permintaan diteruskan ke peers.
Direktif cache_peer_domain adalah cara cepat untuk mencapai kontrol yang diinginkan. Sintaks dari
direktif ini cukup sederhana:
       cache_peer_domain CACHE_PEER_HOSTNAME [!]DOMAIN1 [[!]DOMAIN2 ...]
Dalam kode tersebut, CACHE_PEER_HOSTNAME adalah alamat IP dari host atau peer cache yang
digunakan ketika mendeklarasikan sebagai peer cache, menggunakan direktif cache_peer. Kita dapat
menentukan sejumlah domain yang dapat diambil melalui peer cache. Menambahkan tanda seu (!)
Sebagai awalan untuk nama domain akan mencegah penggunaan peer cache ini untuk domain tertentu.
Katakanlah kita ingin menggunakan peer cache yang videoproxy.example.com untuk browsing portal
video seperti Youtube, Netflix, Metacafe, dan sebagainya.
       cache_peer_domain videoproxy.example.com .youtube.com .netflix.com
       cache_peer_domain videoproxy.example.com .metacafe.com
Kedua baris diatas akan mengkonfigurasi Squid untuk menggunakan cache videoproxy.example.com
cache peer untuk request ke domain youtube.com, netflix.com, dan metacafe.com saja. Permintaan
untuk domain lain tidak akan diteruskan menggunakan peer ini.

Contenu connexe

Tendances

Supriyanto squidproxyserver
Supriyanto squidproxyserverSupriyanto squidproxyserver
Supriyanto squidproxyserverHARRY CHAN PUTRA
 
(2012) 4.proxy pada ubuntu
(2012) 4.proxy pada ubuntu (2012) 4.proxy pada ubuntu
(2012) 4.proxy pada ubuntu Syiroy Uddin
 
Instalasi dan konfigurasi Darwin Streaming Server di Debian 6 via VirtualBox
Instalasi dan konfigurasi Darwin Streaming Server di Debian 6 via VirtualBoxInstalasi dan konfigurasi Darwin Streaming Server di Debian 6 via VirtualBox
Instalasi dan konfigurasi Darwin Streaming Server di Debian 6 via VirtualBoxAchmad Ainun Ridho
 
Tutorial server ubuntu
Tutorial server ubuntuTutorial server ubuntu
Tutorial server ubuntuJisim Kuring
 
Aplikasi monitor jaringan dan keamanan linux ~ m rendi
Aplikasi monitor jaringan dan keamanan linux ~ m rendiAplikasi monitor jaringan dan keamanan linux ~ m rendi
Aplikasi monitor jaringan dan keamanan linux ~ m rendiRachman Arif
 
Tutorial Instalasi TKJ CLoud Server
Tutorial Instalasi TKJ CLoud ServerTutorial Instalasi TKJ CLoud Server
Tutorial Instalasi TKJ CLoud ServerKurniawan Suganda
 
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy ServerModul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy ServerI Putu Hariyadi
 
MEMBANGUN SERVER VIDEO STREAMING BERBASIS CLOUD DENGAN ViMP
MEMBANGUN SERVER VIDEO STREAMING BERBASIS  CLOUD DENGAN ViMPMEMBANGUN SERVER VIDEO STREAMING BERBASIS  CLOUD DENGAN ViMP
MEMBANGUN SERVER VIDEO STREAMING BERBASIS CLOUD DENGAN ViMPAhmad Saktia Yunus
 
Perkembangan web server
Perkembangan web server Perkembangan web server
Perkembangan web server fatek
 
Keamanan Jaringan - Firewall Windows & IPTables Debian 7
Keamanan Jaringan - Firewall Windows & IPTables Debian 7Keamanan Jaringan - Firewall Windows & IPTables Debian 7
Keamanan Jaringan - Firewall Windows & IPTables Debian 7peter agustinus
 
konfigurasi proxy server
konfigurasi proxy serverkonfigurasi proxy server
konfigurasi proxy serverMuhammad Anang
 
pembahasan soal UKK Paket1 SMK NEGERI 1 MAJAULENG
pembahasan soal UKK Paket1 SMK NEGERI 1 MAJAULENGpembahasan soal UKK Paket1 SMK NEGERI 1 MAJAULENG
pembahasan soal UKK Paket1 SMK NEGERI 1 MAJAULENGBaso Ilham
 
Tutorial Instalasi Debian 7 wheezy DNS,DHCP,Webmail dan Webserver
Tutorial Instalasi Debian 7 wheezy DNS,DHCP,Webmail dan WebserverTutorial Instalasi Debian 7 wheezy DNS,DHCP,Webmail dan Webserver
Tutorial Instalasi Debian 7 wheezy DNS,DHCP,Webmail dan WebserverSulthan Adam
 
9.1 gatewae server
9.1 gatewae server9.1 gatewae server
9.1 gatewae serverwayan abyong
 

Tendances (19)

Supriyanto squidproxyserver
Supriyanto squidproxyserverSupriyanto squidproxyserver
Supriyanto squidproxyserver
 
(2012) 4.proxy pada ubuntu
(2012) 4.proxy pada ubuntu (2012) 4.proxy pada ubuntu
(2012) 4.proxy pada ubuntu
 
Tutorial instalasi ubuntu server 12.04, setting DNS server dan Web server
Tutorial instalasi ubuntu server 12.04, setting DNS server dan Web serverTutorial instalasi ubuntu server 12.04, setting DNS server dan Web server
Tutorial instalasi ubuntu server 12.04, setting DNS server dan Web server
 
Instalasi dan konfigurasi Darwin Streaming Server di Debian 6 via VirtualBox
Instalasi dan konfigurasi Darwin Streaming Server di Debian 6 via VirtualBoxInstalasi dan konfigurasi Darwin Streaming Server di Debian 6 via VirtualBox
Instalasi dan konfigurasi Darwin Streaming Server di Debian 6 via VirtualBox
 
Tutorial server ubuntu
Tutorial server ubuntuTutorial server ubuntu
Tutorial server ubuntu
 
Aplikasi monitor jaringan dan keamanan linux ~ m rendi
Aplikasi monitor jaringan dan keamanan linux ~ m rendiAplikasi monitor jaringan dan keamanan linux ~ m rendi
Aplikasi monitor jaringan dan keamanan linux ~ m rendi
 
Tutorial Instalasi TKJ CLoud Server
Tutorial Instalasi TKJ CLoud ServerTutorial Instalasi TKJ CLoud Server
Tutorial Instalasi TKJ CLoud Server
 
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy ServerModul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
 
MEMBANGUN SERVER VIDEO STREAMING BERBASIS CLOUD DENGAN ViMP
MEMBANGUN SERVER VIDEO STREAMING BERBASIS  CLOUD DENGAN ViMPMEMBANGUN SERVER VIDEO STREAMING BERBASIS  CLOUD DENGAN ViMP
MEMBANGUN SERVER VIDEO STREAMING BERBASIS CLOUD DENGAN ViMP
 
Konfigurasi debian
Konfigurasi debianKonfigurasi debian
Konfigurasi debian
 
Perkembangan web server
Perkembangan web server Perkembangan web server
Perkembangan web server
 
Keamanan Jaringan - Firewall Windows & IPTables Debian 7
Keamanan Jaringan - Firewall Windows & IPTables Debian 7Keamanan Jaringan - Firewall Windows & IPTables Debian 7
Keamanan Jaringan - Firewall Windows & IPTables Debian 7
 
Soal ujikom 2013
Soal ujikom 2013Soal ujikom 2013
Soal ujikom 2013
 
Qmail P to V Migration
Qmail P to V MigrationQmail P to V Migration
Qmail P to V Migration
 
konfigurasi proxy server
konfigurasi proxy serverkonfigurasi proxy server
konfigurasi proxy server
 
konfigurasi ftp
konfigurasi ftpkonfigurasi ftp
konfigurasi ftp
 
pembahasan soal UKK Paket1 SMK NEGERI 1 MAJAULENG
pembahasan soal UKK Paket1 SMK NEGERI 1 MAJAULENGpembahasan soal UKK Paket1 SMK NEGERI 1 MAJAULENG
pembahasan soal UKK Paket1 SMK NEGERI 1 MAJAULENG
 
Tutorial Instalasi Debian 7 wheezy DNS,DHCP,Webmail dan Webserver
Tutorial Instalasi Debian 7 wheezy DNS,DHCP,Webmail dan WebserverTutorial Instalasi Debian 7 wheezy DNS,DHCP,Webmail dan Webserver
Tutorial Instalasi Debian 7 wheezy DNS,DHCP,Webmail dan Webserver
 
9.1 gatewae server
9.1 gatewae server9.1 gatewae server
9.1 gatewae server
 

Similaire à Squid indonesia

14001326 all-about-squid-apache - [the-xp.blogspot.com]
14001326 all-about-squid-apache - [the-xp.blogspot.com]14001326 all-about-squid-apache - [the-xp.blogspot.com]
14001326 all-about-squid-apache - [the-xp.blogspot.com]Krisman Tarigan
 
Step by step konfigurasi squid server dari berbagai kasus
Step by step konfigurasi squid server dari berbagai kasusStep by step konfigurasi squid server dari berbagai kasus
Step by step konfigurasi squid server dari berbagai kasusfilar
 
Squidproxyserver
SquidproxyserverSquidproxyserver
Squidproxyserverpuput51
 
Transparan proxy
Transparan proxyTransparan proxy
Transparan proxyIsus Isusay
 
Slide-IST104-IST104-Slide-10-11.pptx
Slide-IST104-IST104-Slide-10-11.pptxSlide-IST104-IST104-Slide-10-11.pptx
Slide-IST104-IST104-Slide-10-11.pptxuntuk1
 
Configuring Nginx as Reverse Proxy and Load Balancing Web Application
Configuring Nginx as Reverse Proxy and Load Balancing Web ApplicationConfiguring Nginx as Reverse Proxy and Load Balancing Web Application
Configuring Nginx as Reverse Proxy and Load Balancing Web ApplicationJagoan Neon
 
Laporan praktikum modul 3
Laporan praktikum modul 3Laporan praktikum modul 3
Laporan praktikum modul 3Devandy Enda
 
Laporan 6
Laporan 6Laporan 6
Laporan 6hudakds
 
Perkembangan web server di Linux
Perkembangan web server di LinuxPerkembangan web server di Linux
Perkembangan web server di LinuxTugas_SO2
 
Pertemuan06 keamanansistemwww
Pertemuan06 keamanansistemwwwPertemuan06 keamanansistemwww
Pertemuan06 keamanansistemwwwRoziq Bahtiar
 
World wide web security
World wide web securityWorld wide web security
World wide web securitylikut101010
 
MikroTik RouterOS Security Automation With Ansible
MikroTik RouterOS Security Automation With AnsibleMikroTik RouterOS Security Automation With Ansible
MikroTik RouterOS Security Automation With AnsibleI Putu Hariyadi
 
Tugas pw [21] web server - fix
Tugas pw [21] web server - fixTugas pw [21] web server - fix
Tugas pw [21] web server - fixkwonnie
 
Presentasi web security
Presentasi web securityPresentasi web security
Presentasi web securityinyonoel
 
16101048 nur adinda fauziah tugas 3
16101048 nur adinda fauziah tugas 316101048 nur adinda fauziah tugas 3
16101048 nur adinda fauziah tugas 3NurAdindaFauziah
 

Similaire à Squid indonesia (20)

14001326 all-about-squid-apache - [the-xp.blogspot.com]
14001326 all-about-squid-apache - [the-xp.blogspot.com]14001326 all-about-squid-apache - [the-xp.blogspot.com]
14001326 all-about-squid-apache - [the-xp.blogspot.com]
 
Squid apache
Squid apacheSquid apache
Squid apache
 
Step by step konfigurasi squid server dari berbagai kasus
Step by step konfigurasi squid server dari berbagai kasusStep by step konfigurasi squid server dari berbagai kasus
Step by step konfigurasi squid server dari berbagai kasus
 
Squidproxyserver
SquidproxyserverSquidproxyserver
Squidproxyserver
 
Proxy server
Proxy serverProxy server
Proxy server
 
Transparan proxy
Transparan proxyTransparan proxy
Transparan proxy
 
Slide-IST104-IST104-Slide-10-11.pptx
Slide-IST104-IST104-Slide-10-11.pptxSlide-IST104-IST104-Slide-10-11.pptx
Slide-IST104-IST104-Slide-10-11.pptx
 
Configuring Nginx as Reverse Proxy and Load Balancing Web Application
Configuring Nginx as Reverse Proxy and Load Balancing Web ApplicationConfiguring Nginx as Reverse Proxy and Load Balancing Web Application
Configuring Nginx as Reverse Proxy and Load Balancing Web Application
 
Laporan praktikum modul 3
Laporan praktikum modul 3Laporan praktikum modul 3
Laporan praktikum modul 3
 
Laporan 6
Laporan 6Laporan 6
Laporan 6
 
Kamdat proxy radius
Kamdat proxy radiusKamdat proxy radius
Kamdat proxy radius
 
Perkembangan web server di Linux
Perkembangan web server di LinuxPerkembangan web server di Linux
Perkembangan web server di Linux
 
Pertemuan06 keamanansistemwww
Pertemuan06 keamanansistemwwwPertemuan06 keamanansistemwww
Pertemuan06 keamanansistemwww
 
Modul 8 squid
Modul 8 squidModul 8 squid
Modul 8 squid
 
World wide web security
World wide web securityWorld wide web security
World wide web security
 
MikroTik RouterOS Security Automation With Ansible
MikroTik RouterOS Security Automation With AnsibleMikroTik RouterOS Security Automation With Ansible
MikroTik RouterOS Security Automation With Ansible
 
5
55
5
 
Tugas pw [21] web server - fix
Tugas pw [21] web server - fixTugas pw [21] web server - fix
Tugas pw [21] web server - fix
 
Presentasi web security
Presentasi web securityPresentasi web security
Presentasi web security
 
16101048 nur adinda fauziah tugas 3
16101048 nur adinda fauziah tugas 316101048 nur adinda fauziah tugas 3
16101048 nur adinda fauziah tugas 3
 

Dernier

Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxIrfanAudah1
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxIgitNuryana13
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxadimulianta1
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5ssuserd52993
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDNurainiNuraini25
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfElaAditya
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7IwanSumantri7
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxRezaWahyuni6
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxazhari524
 
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxtugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxmawan5982
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BAbdiera
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxssuser35630b
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikaAtiAnggiSupriyati
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1udin100
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSovyOktavianti
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxRizkyPratiwi19
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfSitiJulaeha820399
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAAndiCoc
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASKurniawan Dirham
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfDimanWr1
 

Dernier (20)

Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptx
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptx
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptx
 
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxtugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
 

Squid indonesia

  • 1. SQUID (Proxy Server) Squid proxy server memungkinkan Anda untuk cache konten web dan kembali dengan cepat pada permintaan berikutnya. Dengan menjalankan squid dalam accelerator mode, permintaan akan ditangani lebih cepat dari pada web server normal, sehingga membuat situs Anda tampil lebih cepat daripada orang lain! Memulai dengan Squid Proxy server Sebuah server proxy adalah sebuah sistem komputer berada antara klien meminta sebuah dokumen web dan server target (sistem komputer lain) yang melayani dokumen. Dalam bentuk sederhana, sebuah proxy server memfasilitasi komunikasi antara klien dan server tanpa memodifikasi permintaan atau balasan. Ketika kita memulai permintaan untuk resource dari server, proxy server membajak koneksi kita dan mewakili dirinya sendiri sebagai klien ke server, meminta resource atas nama kita. Jika balasan diterima, server proxy mengembalikan kepada kita, seaakan-akan kita telah berkomunikasi dengan server. Dalam bentuk tingkat lanjut, proxy server dapat menyaring permintaan berdasarkan berbagai aturan dan memungkinkan komunikasi hanya ketika permintaan dapat divalidasi terhadap aturan yang tersedia. Aturan umumnya didasarkan pada alamat IP dari klien atau server, protokol, tipe content dokumen web, jenis konten web, dan sebagainya. Seperti yang terlihat pada gambar sebelumnya, klien tidak dapat membuat permintaan langsung ke server web. Untuk memfasilitasi komunikasi antara klien dan web server, kita harus menghubungkan mereka menggunakan server proxy yang bertindak sebagai media komunikasi untuk klien dan web server. Kadang-kadang, proxy server dapat mengubah permintaan atau balasan, atau bahkan dapat menyimpan balasan dari server secara lokal untuk memenuhi permintaan yang sama dari
  • 2. klien yang sama atau dari klien lain pada tahap berikutnya. Menyimpan balasan lokal untuk digunakan di lain waktu dikenal sebagai cache. Caching adalah teknik yang populer digunakan oleh proxy server untuk menghemat bandwidth, memberdayakan web server, dan meningkatkan pengalaman browsing pengguna. Proxy server sebagian besar digunakan untuk melakukan berikut ini: 1. Mengurangi penggunaan bandwidth 2. Meningkatkan pengalaman browsing pengguna dengan mengurangi waktu buka halaman dengan adanya caching dokumen web 3. Menegakkan kebijakan akses jaringan 4. Pemantauan lalu lintas pengguna atau pelaporan penggunaan internet untuk pengguna individu atau kelompok 5. Meningkatkan privasi pengguna dengan tidak mengekspos komputer pengguna secara langsung ke Internet Reverse proxy Reverse proxy adalah teknik menyimpan jawaban atau sumber daya dari web server secara lokal sehingga permintaan berikutnya ke sumber daya yang sama dapat dipenuhi dari salinan lokal pada proxy server , kadang-kadang bahkan tanpa benar-benar menghubungi web server. Proxy server atau web cache akan memeriksa salinan yang disimpan secara lokal dari dokumen web masih berlaku sebelum salinan cache disajikan. Caching web yang banyak digunakan: • Untuk mengurangi penggunaan bandwidth. Sebagian besar dokumen web statis seperti file CSS dan JavaScript, gambar, video, dan sebagainya dapat disimpan pada cache memori karena mereka tidak sering berubah dan merupakan bagian utama dari sebuah respon dari web server. • Oleh ISP untuk mengurangi rata-rata waktu buka halaman untuk meningkatkan pengalaman browsing untuk pelanggan mereka pada Dial-Up atau broadband. • Untuk mengambil beban dari web server yang sangat sibuk dengan melayani halaman statis / dokumen dari cache proxy server. Memperoleh Squid Squid tersedia dalam beberapa bentuk (compressed source archives, source code dari versi sistem kontrol, binary paket seperti RPM, DEB, dan sebagainya) dari situs resmi Squid, mirror Squid dari berbagai seluruh dunia, dan repositori perangkat lunak dari hampir semua sistem operasi . Squid juga disertakan dengan banyak distribusi Linux / Unix.
  • 3. Ada berbagai versi dan rilis Squid tersedia untuk di-download dari situs resmi Squid. Untuk mendapatkan hasil maksimal dari instalasi squid lebih baik memeriksa source code terbaru dari Version Control System (VCS) sehingga kita mendapatkan fitur terbaru dan perbaikan. Tapi perlu hati-hati, source code terbaru dari VCS umumnya mutakhir dan mungkin tidak stabil atau bahkan mungkin tidak bekerja dengan benar. Meskipun kode dari VCS bagus untuk belajar atau pengujian fitur baru Squid, Anda sangat disarankan untuk tidak menggunakan kode dari VCS untuk penyebaran produksi. Jika kita ingin bermain aman, kita mungkin harus men-download versi stabil terbaru atau versi stabil dari rilis yang lebih tua. Versi yang stabil umumnya diuji sebelum mereka dilepaskan. Versi yang stabil dapat langsung digunakan dalam penyebaran produksi. Waktu untuk bertindak - mengidentifikasi versi yang tepat Daftar versi Squid tersedia terdapat pada http://www.squid-cache.org/ Versions/ . Untuk lingkungan produksi, kita harus menggunakan versi yang tercantum di bawah bagian Versi Stabil saja. Waktu untuk bertindak – men-download Squid Sekarang kita akan men-download squid 3.1.10 dari situs resmi Squid: 1. Kunjungi web http://www.squid-cache.org/Versions/ 2. Sekarang kita perlu untuk mengklik pada link versi 3.1, seperti ditunjukkan pada gambar berikut: 3. Kita akan dibawa ke halaman yang menampilkan berbagai rilis dalam versi 3.1. Link dengan tulisan tar.gz pada kolom download adalah paket compress source dari paket squid :
  • 4. 4. Untuk mendownload klik pada link tar.gz 5. Atau bisa mendownload paket tersebut melalui terminal dengan mengetikkan perintah berikut : $ wget http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.10.tar.gz Mendapatkan kode sumber terbaru dari Bazaar VCS Pengguna yang sudah mahir mungkin tertarik untuk mendapatkan kode sumber yang terbaru dari repositori kode Squid, menggunakan Bazaar. Kita dapat melewati bagian ini jika kita tidak akrab dengan VCS pada umumnya. Bazaar adalah sistem kontrol versi (VCS) populer digunakan untuk melacak sejarah proyek dan memfasilitasi kolaborasi. Dari versi 3.x dan seterusnya, kode sumber Squid telah bermigrasi ke Bazaar. Oleh karena itu, kita harus memastikan bahwa kita memiliki Bazaar diinstal pada sistem kita untuk memeriksa repositori dari kode sumber. Untuk mengetahui lebih lanjut tentang Bazaar atau untuk instalasi Bazaar dan konfigurasi manual, silakan kunjungi situs resmi Bazaar di http://bazaar.canonical.com/. Setelah kita memiliki Bazaar setup, kita harus kita harus menuju ke mirror repositori kode Squid pada Launchpad di https://code.launchpad.net/squid/. Dari sini kita dapat menelusuri semua versi dan cabang Squid. Mari membuat diri kita akrab dengan tata letak halaman : Dalam screenshot Series: trunk merupakan cabang pengembangan, yang berisi kode yang masih dalam pengembangan dan belum siap untuk penggunaan produksi. Cabang-cabang dengan status Mature sudah stabil dan dapat digunakan langsung dalam lingkungan produksi.
  • 5. Instalasi Squid Squid dapat diinstal dengan menggunakan kode sumber yang kita diperoleh dalam bagian sebelumnya, menggunakan manajer paket, menggunakan paket biner yang tersedia untuk sistem operasi kita. Mari kita lihat rinci bagaimana cara kita dapat menginstal Squid. Proses instalasi Squid dari source code ada tiga langkah: 1. Pilih sistem operasi fitur dan pengaturan khusus. 2. Kompilasi kode sumber untuk menghasilkan executable. 3. Tempatkan executable yang dihasilkan dan file lain yang dibutuhkan di lokasi mereka yang ditunjuk untuk Squid berfungsi dengan baik. Kita dapat melakukan beberapa langkah di atas menggunakan alat otomatis yang membuat kompilasi dan proses instalasi relatif mudah. Kompilasi Squid Kompilasi Squid adalah proses kompilasi beberapa file yang mengandung C/C++ source code dan menghasilkan executable. Kompilasi Squid benar-benar mudah dan dapat dilakukan dalam beberapa langkah. Untuk mengkompilasi Squid, kita perlu ANSI C/ C++ compiler yang sesuai. Jika kita sudah memiliki GNU C/C++ Compiler (GNU Compiler Collection (GCC) dan g++, sudah tersedia di hampir setiap sistem operasi Linux / Unix secara default), kita siap untuk memulai kompilasi. Mengapa kompilasi? Kompilasi Squid adalah sedikit tugas yang menyakitkan dibandingkan dengan menginstal squid dari paket biner. Namun, kami merekomendasikan kompilasi Squid dari sumber daripada menggunakan pre-compiled binari. Mari kita lihat beberapa keuntungan dari kompilasi Squid dari sumber: • Saat kompilasi kita dapat mengaktifkan fitur tambahan, yang tidak dapat diaktifkan dalam paket pre-compiled binary. • Ketika kompilasi, kita juga dapat menonaktifkan fitur tambahan yang tidak diperlukan untuk lingkungan tertentu. Sebagai contoh, kita mungkin tidak perlu helper Otentikasi atau dukungan ICMP. • Menggunakan mengkonfigurasi, kita dapat menentukan lokasi alternatif untuk menginstal Squid. Kita bahkan dapat menginstal Squid tanpa hak root atau super user, yang tidak mungkin dapat dilakukan dengan pre-compiled paket biner. Meskipun kompilasi Squid dari source memiliki banyak keunggulan dibandingkan menginstal dari paket binary, paket biner memiliki keunggulan tersendiri. Sebagai contoh, ketika kita berada dalam mode pengendalian kerusakan atau situasi krisis dan kita perlu untuk mendapatkan proxy server dan
  • 6. berjalan sangat cepat, menggunakan paket biner untuk instalasi akan menyediakan instalasi cepat. Uncompressing arsip Jika kita memperoleh Squid dalam format arsip terkompresi, kita harus mengekstrak sebelum kita dapat melanjutkan lebih jauh. Jika kita memperoleh Squid dari Launchpad menggunakan Bazaar, kita tidak perlu melakukan langkah ini. tar -xvzf squid-3.1.10.tar.gz tar adalah perintah populer yang digunakan untuk mengekstrak arsip terkompresi dari berbagai jenis. Di sisi lain, juga dapat digunakan untuk kompres banyak file ke arsip tunggal. Perintah sebelumnya akan mengekstrak arsip ke direktori bernama squid-3.1.10. Konfigurasi atau sistem check Mengkonfigurasi atau memeriksa sistem adalah langkah pertama dalam proses kompilasi dan diperoleh dengan menjalankan ./configure pada command line. Program ini memeriksa sistem, memastikan bahwa paket yang dibutuhkan telah terinstal. Selain itu juga memeriksa kemampuan sistem dan mengumpulkan informasi tentang arsitektur sistem dan pengaturan standar seperti, deskriptor file yang tersedia dan sebagainya. Setelah mengumpulkan semua informasi, program ini menghasilkan makefiles, yang digunakan pada langkah berikutnya untuk mengkompilasi source code squid. Menjalankan configure tanpa parameter apapun akan menggunakan default preset. Jika kita bersedia untuk mengubah pengaturan default Squid atau jika kita ingin menonaktifkan beberapa fitur opsional yang diaktifkan secara default, atau jika kita ingin menginstal Squid di lokasi alternatif dalam sistem file, kita perlu menambahkan pilihan untuk mengkonfigurasi. Gunakan perintah berikut untuk melihat pilihan yang tersedia sebagai gambaran singkat. Mari kita jalankan configure dengan opsi --help untuk melihat opsi konfigurasi yang tersedia. ./configure --help | less Ini akan menampilkan halaman yang berisi pilihan dan penjelasan singkat untuk configure. Gunakan tombol panah atas dan bawah untuk menelusuri informasi. Sekarang mari kita membahas beberapa opsi yang umum digunakan dengan configure: --prefix Opsi --prefix adalah pilihan yang paling umum digunakan. Jika kita sedang menguji versi baru atau jika kita ingin menguji beberapa versi Squid, kita akan memiliki beberapa versi squid yang terpasang pada sistem kita. Untuk mengidentifikasi versi yang berbeda dan untuk mencegah kemungkinan terjadinya gangguan atau kebingungan antar versi, itu ide yang baik untuk menginstal
  • 7. mereka dalam direktori terpisah. Sebagai contoh, untuk menginstal versi Squid 3.1.10, kita dapat menggunakan direktori /opt/squid/3.1.10/ dan perintah configure terkait akan dijalankan sebagai: ./configure --prefix=/opt/squid/3.1.10/ Demikian pula, untuk menginstal versi Squid 3.1, kita dapat menggunakan direktori /opt/squid/3.1/. Mulai sekarang dan seterusnya, ${prefix} akan mewakili lokasi di mana kita telah menginstal squid, yaitu, nama direktori yang digunakan dengan opsi --prefix saat menjalankan configure, seperti yang ditunjukkan pada perintah sebelumnya. Squid menyediakan lebih dalam mengontrol lokasi dari berbagai jenis file seperti executable dan file dokumentasi. Penempatan mereka dapat dikontrol dengan pilihan seperti --bindir, --sbindir, dan seterusnya. Silakan periksa halaman bantuan configure untuk rincian lebih lanjut tentang pilihan ini. Sekarang, mari kita memeriksa fitur opsional dan paket. Untuk mengaktifkan fitur opsional apapun, kita gunakan pilihan dalam format --enable-FEATURE_NAME dan untuk menonaktifkan fitur, format pilihan adalah --disable-FEATURE_NAME or --enable-FEATURE_NAME=no . Sebagai contoh, icmp adalah nama fitur. ./configure --enable-FEATURE # FEATURE will be enabled ./configure --disable-FEATURE # FEATURE will be disabled ./configure --enable-FEATURE=no # FEATURE will be disabled Demikian pula, untuk mengkompilasi Squid dengan paket yang tersedia, kita gunakan sebuah opsi dalam format --with-PACKAGE_NAME dan untuk mengkompilasi Squid tanpa sebuah paket, kita gunakan pilihan --without-PACKAGE_NAME. openssl adalah sebuah nama paket misalnya. --enable-gnuregex Ekspresi reguler yang digunakan untuk membangun Access Control Lists di squid. Jika kita menjalankan sistem Linux/Unix berbasis operasi modern, kita tidak perlu khawatir tentang pilihan ini. Tapi jika sistem kita tidak memiliki built-in yang mendukung untuk ekspresi reguler, kita harus mengaktifkan dukungan untuk ekspresi reguler menggunakan –enable-gnuregex. -- disable-inline Squid memiliki banyak kode yang dapat Inlined, yang baik untuk penggunaan produksi. Tapi kode inline memakan waktu lebih lama untuk mengkompilasi dan berguna ketika kita perlu untuk mengkompilasi sumber hanya sekali untuk menyiapkan Squid untuk penggunaan produksi. Pilihan ini dimaksudkan untuk digunakan selama pengembangan ketika kita perlu waktu kompilasi Squid dan lagi. --disable-optimizations Squid, secara default, dikompilasi dengan optimasi compiler yang menghasilkan kinerja yang lebih baik. Sekali lagi pilihan ini harus digunakan saat debugging masalah atau pengujian versi yang
  • 8. berbeda yang akan mengurangi waktu kompilasi. Pilihan --disable-inline secara otomatis digunakan jika kita menggunakan opsi ini. --enable-storeio Kinerja squid sangat bergantung pada disk I / O kinerja saat disk caching diaktifkan. Quicker Squid dapat membaca/menulis file dari cache, pada waktu tertentu ia akan mengambil untuk memenuhi permintaan, yang pada gilirannya akan mengakibatkan waktu delay (penundaan) yang lebih kecil. Teknik penyimpanan yang berbeda dapat menyebabkan kinerja yang optimal, tergantung pada jenis lalu lintas dan penggunaan. Kita dapat menggunakan opsi ini untuk membangun Squid dengan dukungan untuk modul berbagai penyimpanan I/O. Silakan periksa src/fs/ direktori source code squid untuk modul penyimpanan I/O yang tersedia. ./configure –enable-storeio=ufs,aufs,coss,diskd,null --enable-removal-policies Sewaktu menggunakan disk caching, kita menginstruksikan Squid untuk menggunakan ruang disk yang ditentukan untuk caching dokumen web. Selama periode waktu, ruang yang dikonsumsi dan Squid masih perlu lebih banyak ruang untuk cache dokumen baru. Squid kemudian harus memutuskan mana dokumen lama harus dihapus atau dibersihkan dari cache untuk membuat ruang untuk menyimpan yang baru. Ada kebijakan yang berbeda untuk membersihkan dokumen untuk mencapai manfaat maksimal dari caching. Kebijakan ini didasarkan pada struktur tumpukan dan daftar data. Daftar struktur data diaktifkan secara default. Silakan periksa src/repl/ direktori source code squid untuk kebijakan penghapusan yang tersedia. ./configure –enable-removal-policies=heap,lru --enable-icmp Opsi ini berguna dalam menentukan jarak dari rekan-rekan cache lainnya dan remote server untuk memperkirakan perkiraan latency. Hal ini berguna hanya jika kita memiliki rekan-rekan cache lainnya dalam jaringan. --enable-delay-pools Squid menggunakan delay pools untuk membatasi atau mengontrol bandwidth yang dapat digunakan oleh klien atau sekelompok klien. Delay pools seperti ember bocor yang kebocoran data (lalu lintas web) untuk klien dan diisi ulang pada tingkat yang terkendali. Hal ini bermanfaat ketika kita perlu untuk mengontrol bandwidth yang digunakan oleh sekelompok pengguna. --enable-esi Opsi ini memungkinkan Squid untuk menggunakan Edge Side Includes (lihat
  • 9. http://www.esi.org untuk informasi lebih lanjut). Jika ini diaktifkan, squid akan mengabaikan header cache-kontrol dari klien. Pilihan ini hanya dimaksudkan untuk digunakan saat Squid digunakan dalam modus akselerator. --enable-useragent-log Menyediakan kemampuan logging header agen pengguna dari permintaan HTTP oleh klien. --enable-referer-log Jika kita mengaktifkan opsi ini, Squid akan mampu menulis kolom header referer dari permintaan HTTP. --disable-wccp Opsi ini menonaktifkan dukungan untuk Web Cache Komunikasi Protocol (WCCP) Cisco. WCCP memungkinkan komunikasi antara cache, yang pada gilirannya membantu dalam melokalisir lalu lintas. Secara default, dukungan WCCP diaktifkan. --disable-wccpv2 Mirip dengan pilihan sebelumnya, ini Menonaktifkan dukungan Cisco WCCP versi 2. WCCPv2 adalah versi perbaikan dari WCCP dan memiliki built-in mendukung untuk load balancing, scaling, fault-tolerance, dan mekanisme pelayanan jaminan. Secara default, dukungan WCCPv2 diaktifkan. --disable-snmp Dalam versi Squid 3.x, SNMP (Simple Network Management Protocol) diaktifkan secara default. SNMP cukup populer di kalangan administrator sistem untuk server monitoring dan perangkat jaringan. --enable-cachemgr-hostname Cache Manager (cachemgr.cgi) adalah utilitas CGI untuk mengelola squid cache dan melihat statistik cache menggunakan antarmuka web. Nama host untuk mengakses manajer cache bisa diatur menggunakan opsi ini. Secara default, kita dapat mengakses cache manager antarmuka web menggunakan localhost atau alamat IP dari server squid. ./configure –enable-cachemgr-hostname=squidproxy.example.com --enable-arp-acl Squid mendukung pengembangan Access Control Lists berdasarkan MAC (atau Ethernet) address. Fitur ini dinonaktifkan secara default. Jika kita ingin mengontrol akses klien berdasarkan alamat Ethernet, kita harus mengaktifkan fitur ini. Mengaktifkan ini adalah ide yang baik sambil belajar squid. --disable-htcp Hypertext Caching Protocol (HTCP) dapat digunakan oleh squid untuk mengirim dan menerima
  • 10. cache yang dicernanya untuk cache tetangga. Opsi ini menonaktifkan dukungan HTCP. --enable-ssl Squid dapat menghentikan koneksi SSL. Ketika Squid dikonfigurasi dalam mode reverse proxy, Squid dapat menghentikan koneksi SSL dimulai oleh klien dan menanganinya atas nama web server di backend. pada dasarnya ini berarti bahwa backend web server tidak akan memiliki untuk melakukan pekerjaan SSL, yang berarti penghematan komputasi yang signifikan. Dalam hal ini, komunikasi antara Squid dan backend web server akan menjadi HTTP murni, tapi klien masih akan melihatnya sebagai koneksi aman dengan server web. Hal ini berguna hanya ketika Squid dikonfigurasi untuk bekerja pada akselerator atau mode reverse proxy. --enable-cache-digest Cache digests adalah cara Squid berbagi informasi dengan server Squid tetangga tentang cache dokumen web, dalam format terkompresi. --enable-default-err-language Setiap kali Squid menemukan kesalahan (misalnya, halaman tidak ditemukan, akses ditolak, atau network unreachable error) yang harus disampaikan kepada klien, squid menggunakan halaman default untuk menampilkan kesalahan ini. Halaman-halaman kesalahan tersedia dalam bahasa lokal. Pilihan ini dapat digunakan untuk menentukan bahasa default untuk semua halaman kesalahan. Bahasa default untuk halaman kesalahan adalah bahasa Inggris. ./configure –enable-default-err-language=Spanish --enable-err-languages Secara default, squid membangun dukungan untuk semua bahasa yang tersedia. Jika kita hanya ingin membangun Squid dengan bahasa yang kita kenal dengan, kita dapat menggunakan opsi ini. Harap memeriksa errors/ pada direktori source code squid untuk bahasa yang tersedia. ./configure --enable-err-languages='English French German' --disable-http-violations Squid memiliki pilihan konfigurasi, dan dengan menggunakan mereka, kita dapat memaksa Squid untuk melanggar standar protokol HTTP dengan mengganti field header dalam permintaan atau respons HTTP. Bermain-main dengan HTTP header bertentangan dengan norma HTTP standar. Kita dapat menonaktifkan dukungan untuk segala macam pelanggaran HTTP dengan menggunakan opsi ini. --enable-ipfw-transparent IPFIREWALL (IPFW) adalah aplikasi firewall untuk sistem FreeBSD, FreeBSD dikelola oleh staf dan sukarelawan. Opsi ini berguna ketika mengatur Transparan Proxy Server pada sistem dengan IPFW. Jika sistem kita tidak memiliki IPFW, kita harus menghindari menggunakan opsi ini, karena
  • 11. Squid akan gagal dikompilasi. Perilaku default adalah auto-detect, yang melakukan pekerjaan dengan cukup baik. --enable-ipf-transparent Ipfilter (IPF) juga merupakan stateful firewall bagi banyak Unix-seperti sistem operasi. Hal ini disediakan oleh NetBSD, Solaris, dan sebagainya. Jika sistem kita memiliki IPF, maka kita harus mengaktifkan opsi ini untuk dapat mengkonfigurasi Squid dalam mode Transparan. Mengaktifkan opsi ini dengan tidak adanya IPF pada sistem akan mengakibatkan kesalahan kompilasi. --enable-pf-transparent Packet Filter (PF) adalah satu lagi aplikasi stateful firewall awalnya dikembangkan untuk OpenBSD. Opsi ini berguna pada sistem dengan PF dipasang untuk mencapai mode Transparent Proxy. Jangan aktifkan pilihan ini jika PF tidak diinstal. --enable-linux-netfliter Netfilter merupakan kerangka penyaringan paket dalam kernel Linux dalam seri 2.4.x dan 2.6.x. Opsi ini berguna untuk mengaktifkan dukungan Transparent Proxy pada sistem operasi berbasis Linux. --enable-follow-x-forwarded-for Ketika sebuah permintaan HTTP diteruskan oleh proxy, proxy menulis informasi penting tentang dirinya sendiri dan klien dimana permintaan tersebut sedang diteruskan, dalam header HTTP. Opsi ini memungkinkan Squid untuk mencoba untuk pencarian alamat IP dari klien asli untuk dimana permintaan itu diteruskan melalui satu atau lebih server proxy. --disable-ident-lookups Hal ini untuk mencegah dari melakukan pencarian pada Squid ident atau mengidentifikasi username untuk setiap koneksi. Menonaktifkan ini dapat mencegah sistem kita dari kemungkinan serangan Denial Of Service oleh klien berbahaya yang meminta koneksi dalam jumlah besar. --disable-internal-dns Squid memiliki implementasi sendiri pada DNS protokol dan mampu membangun query DNS. Jika kita ingin menggunakan DNS internal squid, maka kita tidak harus menonaktifkan itu. Jika tidak, kita dapat menonaktifkan dukungan untuk fitur internal DNS Squid dengan menggunakan opsi ini dan dapat menggunakan server eksternal DNS. --enable-default-hostsfile Menggunakan pilihan ini, kita dapat memilih lokasi default dari file host. Pada sistem operasi pada umumnya, itu terletak di direktori /etc/ hosts. ./configure --enable-default-hostsfile=/some/other/location/hosts
  • 12. --enable-auth Squid mendukung berbagai mekanisme autentikasi. Opsi ini memungkinkan dukungan untuk skema autentikasi. Konfigurasi pilihan ini (dan berhubungan mengaktifkan opsi auth) sedang mengalami perubahan. Sintaks lama Sebelumnya, opsi ini digunakan untuk mengaktifkan dukungan autentikasi dan daftar skema autentikasi ini juga berlalu. Skema Autentikasi dari daftar kemudian dibangun selama kompilasi. ./configure –enable-auth=basic,digest,ntlm Sintaks baru Sekarang, pilihan ini hanya digunakan untuk mengaktifkan dukungan global untuk otentikasi dan daftar skema otentikasi tidak diteruskan. Skema autentikasi diaktifkan dengan opsi --enable-auth- AUTHENTICATION_SCHEME dimana AUTHENTICATION_SCHEME adalah nama dari skema autentikasi. Secara default, semua skema autentikasi diaktifkan dan helper autentikasi yang sesuai dibangun selama kompilasi. helper otentikasi (authentication helper) adalah program eksternal yang dapat mengotentikasi klien menggunakan berbagai mekanisme autentikasi, terhadap database pengguna yang berbeda. ./configure –enable-auth --enable-auth-basic Opsi ini memungkinkan dukungan untuk skema Otentikasi Dasar dan membangun daftar helper tertentu. Jika daftar helper tidak disediakan, Hal ini memungkinkan akan mengaktifkan semua helper mungkin. Daftar helper yang tersedia untuk skema ini dapat ditemukan di helpers/basic_auth/ direktori dalam source code squid. Untuk menonaktifkan skema autentikasi, kita dapat menggunakan --disable- auth-basic. ./configure --enable-auth-basic=PAM,NCSA,LDAP Jika kita ingin mengaktifkan opsi ini tetapi tidak ingin membangun semua helper, kita harus menggunakan "none" di tempat dari daftar helper ./configure –enable-auth-basic=none Sebelumnya, opsi ini dikenal sebagai –enable-basic-auth-helpers. Daftar helper dilewatkan dengan cara yang sama. ./configure –enable-basic-auth-helpers=PAM,NCSA,LDAP “Sintaks opsi lama dan baru untuk semua skema otentikasi lainnya yang serupa.” --enable-auth-ntlm Squid mendukung skema otentikasi NTLM diaktifkan dengan pilihan ini. Helper yang tersedia
  • 13. untuk skema ini berada di direktori helpers/ntlm_auth/ dalam source codesquid. Untuk menonaktifkan dukungan autentikasi NTLM skema, gunakan opsi --disable-auth-ntlm . ./configure –enable-auth-ntlm=smb_lm,no_check --enable-auth-negotiate Opsi ini memungkinkan skema Otentikasi Negotiate. Rincian dan sintaks mirip dengan opsi skema otentikasi di atas. ./configure –enable-auth-negotiate=kerberos --enable-auth-digest Opsi ini memungkinkan dukungan untuk skema Otentikasi Digest. Rincian lainnya mirip dengan opsi di atas. --enable-ntlm-fail-open Jika opsi ini diaktifkan dan helper gagal melakukan otentikasi pengguna, itu masih dapat memungkinkan Squid untuk mengotentikasi pengguna. Pilihan ini harus digunakan dengan hati-hati karena dapat mengakibatkan celah keamanan. --enable-external-acl-helpers Squid mendukung ACL eksternal menggunakan helper. Jika kita bersedia untuk menggunakan ACL eksternal, kita harus mempertimbangkan menggunakan opsi ini. Kita juga bisa menggunakan opsi ini sambil belajar. Daftar helper ACL eksternal harus dilalui untuk membangun helper tertentu. Perilaku default adalah untuk membangun semua helper yang tersedia. Sebuah daftar yang tersedia helper ACL eksternal dapat ditemukan di direktori helpers/external_acl/ pada source code squid. ./configure –enable-external-acl-helpers=unix_group,ldap_group --disable-translation Secara default, squid berusaha menyajikan kesalahan dan halaman manual dalam bahasa lokal. Jika kita tidak ingin ini terjadi, maka kita dapat menggunakan opsi ini. --disable-auto-locale Berdasarkan permintaan header klien, Squid mencoba untuk secara otomatis menyediakan halaman kesalahan lokal. Kita dapat menggunakan pilihan ini untuk menonaktifkan lokalisasi otomatis. Tag error_directory di file konfigurasi squid harus dikonfigurasi jika kita menggunakan opsi ini. --disable-unlinkd unlinkd adalah proses eksternal yang digunakan untuk memutuskan tautan panggilan sistem. Opsi ini menonaktifkan dukungan unlinkd di squid. Menonaktifkan unlinkd bukanlah ide yang baik karena system call unlink dapat memblokir proses memakan waktu yang cukup banyak, yang dapat menyebabkan keterlambatan dalam respons.
  • 14. --with-default-user Kita biasanya tidak ingin menjalankan squid sebagai user root untuk menghilangkan risiko keamanan. Secara default, squid berjalan sebagai user nobody. Namun, jika kita telah menginstal Squid dari biner pre-compiled, Squid dapat menjalankan sebagai 'squid' atau 'proxy' pengguna tergantung pada sistem operasi yang kita gunakan. Menggunakan pilihan ini, kita dapat mengatur default user untuk menjalankan squid. Lihat contoh berikut bagaimana menggunakan opsi ini: ./configure –with-default-user=squid --with-logdir Secara default, squid menulis semua laporan log dan kesalahan untuk file yang ditunjuk di $ {prefix}/var/logs/. Lokasi ini berbeda dari lokasi yang digunakan oleh semua proses lainnya dan daemon untuk menulis log mereka. Dalam rangka untuk mendapatkan akses cepat ke log Squid, kita mungkin ingin menempatkan mereka di direktori default sistem log, yang ini /var/log/ di sebagian besar sistem operasi berbasis Linux. Lihat contoh sintaks berikut untuk melakukan hal ini: ./configure –with-logdir=/var/log/squid/ --with-pidfile Lokasi default untuk menyimpan file PID squid adalah ${prefix}/var/run/squid. pid, bukan merupakan lokasi sistem standar untuk menyimpan file PID. Pada kebanyakan sistem operasi berbasis Linux, file PID disimpan di /var/run/. Jadi, kita mungkin ingin mengubah lokasi default pidfile menggunakan opsi berikut: ./configure –with-pidfile=/var/run/squid.pid --with-aufs-threads Menggunakan pilihan ini, kita dapat menentukan jumlah thread untuk digunakan ketika sistem penyimpanan aufs digunakan untuk mengelola direktori cache. Jika opsi ini tidak digunakan, squid secara otomatis menghitung jumlah thread yang harus digunakan: ./configure –with-aufs-threads=12 --without-pthreads Versi Squid dibangun tanpa dukungan thread POSIX. Sekarang, Squid dibangun dengan dukungan pthreads secara default, karena itu, jika kita tidak ingin mengaktifkan dukungan pthreads, kita harus secara eksplisit menonaktifkan itu. --with-openssl Jika kita ingin membangun Squid dengan dukungan OpenSSL, kita dapat menggunakan opsi ini untuk menentukan path instalasi OpenSSL, jika tidak diinstal di lokasi default: ./configure –with-openssl=/opt/openssl/
  • 15. --with-large-files Dalam lalu lintas yang padat, log file squid ini (terutama log akses) tumbuh dengan cepat dan dalam jangka panjang ukuran file dapat menjadi cukup besar. Kita dapat menggunakan opsi ini untuk mengaktifkan dukungan untuk file log besar. “Untuk kinerja yang lebih baik, itu adalah praktik yang baik untuk memutar file-file log yang sering bukannya pergi dengan file besar.” --with-filedescriptors Sistem operasi menggunakan deskriptor file (pada dasarnya integer) untuk melacak file dan soket yang terbuka. Secara default, ada batas pada jumlah deskriptor file, pengguna dapat menggunakan (biasanya 1024). Begitu Squid sudah menerima koneksi yang telah dikonsumsi semua deskriptor file yang tersedia untuk pengguna Squid, squid tidak dapat menerima koneksi lebih banyak, kecuali beberapa file deskriptor yang dilepas. Di bawah beban(load) berat, squid sering kehabisan file deskriptor. Kita dapat menggunakan pilihan berikut untuk mengatasi masalah kekurangan file descriptor: ./configure –with-filedescriptors=8192 Kita juga perlu meningkatkan batas system-width pada jumlah deskriptor file yang tersedia untuk pengguna. Have a go hero – file descriptors Cari tahu jumlah maksimum deskriptor file yang tersedia untuk pengguna Anda. Juga, tuliskan perintah yang akan menetapkan batas maksimum file deskriptor yang tersedia untuk 8192. Solusi: Untuk memeriksa file deskriptor yang tersedia gunakan perintah berikut: ulimit -n Untuk mengatur batas file descriptor dengan 8192, kita perlu menambahkan baris berikut di /etc/security/limits.conf: username hard nofile 8192 username soft nofile 8192 Tindakan ini hanya dapat dilakukan dengan hak root atau super user. Saatnya untuk bertindak - menjalankan perintah configure Sekarang setelah kita telah memiliki sekilas tentang beberapa pilihan yang tersedia, kita dapat layout pilihan untuk lingkungan dimana kita membangun squid. Sekarang, kita siap untuk menjalankan perintah configure dengan opsi-opsi berikut: ./configure --prefix=/opt/squid/ --with-logdir=/var/log/squid/ --with- pidfile=/var/run/squid.pid
  • 16. --enable-storeio=ufs,aufs --enable-removal- policies=lru,heap --enable-icmp --enable- useragent-log --enable-referer- log --enable-cache-digests –with-large-files dan menghasilkan keputusan atas dasar library dan modul yang tersedia. configure menulis keluaran debug ke file config.log dalam direktori yang sama. Ini adalah cara untuk memeriksa config.log untuk setiap kesalahan yang mungkin terjadi saat menjalankan perintah configure. Jika semuanya berjalan baik-baik saja, configure akan menghasilkan makefiles dalam beberapa direktori yang akan dibutuhkan untuk kompilasi source code pada langkah berikutnya. Apa yang baru saja terjadi? Menjalankan program configure dengan opsi-opsi yang disebutkan dalam contoh kode sebelumnya, akan menghasilkan makefiles yang dibutuhkan untuk mengkompilasi source code dan source code Squid dari modul diaktifkan. Ini juga akan menghasilkan config.log dan file config.status. Semua pesan yang dihasilkan selama menjalankan program configure dicatat ke file config.log. File config.status adalah eksekusi yang dapat dijalankan untuk menciptakan makefiles. Have a go hero – debugging configure errors Dalam direktori source squid, jalankan perintah configure, seperti yang ditunjukkan dalam kode berikut: ./configure –enable-storeio='aufs,disk' Sekarang cobalah untuk memeriksa apa yang salah dan memperbaiki kesalahan. Saatnya untuk bertindak - kompilasi source Setelah menentukan lingkungan kita dan membangun persyaratan, kita perlu melakukan kompilasi aktual. Kompilasi source code sangat mudah dan hanya dengan menggunakan satu perintah: make Kita tidak perlu menjadi root atau super user untuk menjalankan perintah ini. Perintah ini dapat mengambil cukup banyak waktu untuk mengeksekusi, tergantung pada perangkat keras sistem. Menjalankan make akan menghasilkan banyak output di terminal. Hal ini juga dapat menghasilkan banyak peringatan kompilator yang aman dapat diabaikan dalam banyak kasus. Jika make berakhir dengan error, kita harus periksa bugzilla squid untuk masalah yang sama. Kita dapat memperbarui sebuah bug yang ada dengan laporan kesalahan kita atau membuat laporan bug baru jika tidak ada bug yang sama. Untuk rincian tentang pemecahan masalah dan menyelesaikan laporan bug, silakan lihat Bab 12, Troubleshooting Squid . Jika make berakhir tanpa kesalahan, kita dapat dengan cepat melanjutkan ke tahap instalasi. Kita juga dapat menjalankan make lagi untuk memverifikasi bahwa segala sesuatu dikompilasi dengan
  • 17. sukses. Menjalankan make lagi akan menghasilkan banyak baris serupa dengan berikut ini: Making all in compat make[1]: Entering directory '/home/user/squid-source/compat' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/user/squid-source/compat' Apa yang baru saja terjadi? Kita baru saja menjalankan perintah make yang akan mengkompilasi source code dari Squid dan modul yang terkait, untuk menghasilkan executable, jika selesai tanpa kesalahan. Executable yang dihasilkan siap untuk diinstal sekarang. Saatnya untuk bertindak - menginstal Squid Kompilasi yang sukses dari kode sumber dalam bagian sebelumnya akan menghasilkan program yang dibutuhkan tergantung pada fitur dan paket telah kita aktifkan atau dinonaktifkan. Namun, mereka harus dipindahkan ke lokasi yang telah ditentukan, sehingga mereka dapat digunakan. Mari kita melakukan langkah-langkah akhir instalasi. 1. Tergantung pada ${prefix} , kita mungkin perlu hak root atau super user untuk menginstal Squid. Jika root atau super user diperlukan, pertama kita harus beralih ke root atau super user dengan menggunakan perintah berikut: sudo su 2. Sekarang semua yang perlu kita lakukan adalah untuk menjalankan perintah make dengan install sebagai argumen: make install Perintah ini akan menginstal atau hanya memindahkan program ke lokasi yang telah ditentukan, tergantung pada path yang digunakan dengan opsi --prefix saat menjalankan program configure. Apa yang baru saja terjadi? Kita baru saja belajar bagaimana untuk melakukan langkah terakhir dalam menginstal Squid, yang menempatkan program-program yang dihasilkan dan file penting lainnya di lokasi yang telah ditentukan. Mari kita melihat file dan direktori yang dihasilkan selama instalasi. Cara termudah untuk memeriksa direktori dan file yang dihasilkan adalah dengan menggunakan perintah tree. Jika perintah tree tidak tersedia, kita bisa melihat daftar file dengan menggunakan perintah ls juga. tree ${prefix} | less ${prefix} adalah direktori yang digunakan dengan opsi --prefix saat configure. Sekarang mari kita
  • 18. memiliki gambaran singkat di file penting yang dihasilkan oleh squid saat instalasi. Semua direktori dan file berikut terdaftar, berada di ${prefix}: bin Direktori ini berisi program-program yang dapat dieksekusi atau dijalankan oleh pengguna tanpa hak root atau super user. bin/squidclient squidclient adalah klien HTTP dengan kemampuan canggih, yang memungkinkan untuk melakukan permintaan HTTP untuk menguji server Squid. Jalankan squidclient untuk memeriksa pilihan yang tersedia: ${prefix}/bin/squidclien etc Ini adalah tempat di mana untuk semua file konfigurasi yang berkaitan dengan Squid berada. “Ini adalah ide yang baik untuk menggunakan pilihan --sysconfdir=/etc/squid/ dengan configure, sehingga Anda dapat berbagi konfigurasi pada instalasi squid yang berbeda saat pengujian.” etc/squid.conf Ini adalah lokasi default untuk file konfigurasi squid. File squid.conf dihasilkan selama instalasi ini merupakan konfiguasi minimum yang dibutuhkan untuk Squid untuk digunakan. Kita selalu membuat perubahan pada file ini jika kita perlu mengubah konfigurasi squid. etc/squid.conf.default Squid menghasilkan file konfigurasi default ini sehingga kita dapat menyalin dan rename menjadi squid.conf dan mulai lagi. etc/squid.conf.documented Ini adalah versi yang didokumentasikan dengan lengkap dari squid.conf, berisi ribuan baris komentar. Kita harus selalu merujuk ke file ini untuk tag konfigurasi yang tersedia untuk versi Squid yang telah kita instal. libexec Direktori ini berisi program pembantu(helper) dibangun selama kompilasi squid. libexec/cachemgr.cgi Program CGI menyediakan antarmuka web untuk mengelola cache Squid yang disebut Cache Manajer. Sbin Direktori ini berisi program-program yang hanya dapat dieksekusi oleh root atau user dengan hak akses super user.
  • 19. sbin/squid Ini adalah program Squid yang sebenarnya, yang umumnya dijalankan sebagai daemon. share Ini adalah lokasi untuk template halaman error, dokumentasi, dan file lain yang digunakan oleh squid. share/errors Direktori ini berisi template halaman kesalahan lokal. Template adalah halaman HTML dan kita dapat menyesuaikan pesan kesalahan yang ditampilkan oleh Squid, dengan memodifikasi template HTML ini. share/icons Direktori ini berisi sejumlah gambar kecil yang digunakan untuk daftar direktori FTP atau Gopher. share/man Ini adalah tempat di mana halaman manual untuk squid squidclient, dan helper dibangun selama kompilasi. man adalah halaman manual atau halaman bantuan yang dapat dilihat dengan menggunakan perintah man (tersedia di semua Linux / Unix distribusi). Untuk melihat halaman manual yang terletak di /opt/squid/ share/man/man8/squid.8 , kita dapat menggunakan perintah man sebagai berikut: man /opt/squid/share/man/man8/squid.8 Untuk rincian lebih lanjut tentang halaman manual, silakan kunjungi http://en.wikipedia.org/wiki/Man_page. var Sebuah tempat untuk file yang sering berubah ketika squid berjalan. var/cache Ini adalah direktori default untuk menyimpan dokumen-dokumen web cache pada hard disk. var/logs Ini adalah default home untuk semua file log (seperti cache.log, access.log, dan sebagainya) yang digunakan oleh squid. Apa yang baru saja terjadi? Kita baru saja melihat berbagai file dan direktori yang dihasilkan selama instalasi dan gambaran singkat tentang apa isi dari setiap direktori. Installing Squid dari paket binary Paket binary Squid tersedia dalam repositori perangkat lunak pada kebanyakan sistem operasi dan kita dapat menginstal mereka dengan menggunakan manajer paket yang disediakan oleh sistem operasi masing-masing. Selanjutnya, kita akan melihat bagaimana menggunakan manajer paket pada
  • 20. beberapa sistem operasi untuk menginstal Squid. “Versi terbaru atau beta mungkin tidak tersedia dalam repositori perangkat lunak dari semua sistem operasi. Dalam kasus tersebut, kita harus mendapatkan versi terbaru atau beta dari situs squid, seperti yang dijelaskan sebelumnya dalam bab ini.” Fedora, CentOS or Red Hat Yum adalah manajer paket yang populer pada sistem operasi berbasis RPM. Squid RPM tersedia di Fedora, CentOS, dan repositori Red Hat. Untuk menginstal Squid, kita tinggal bisa menggunakan perintah berikut: yum install squid Debian or Ubuntu Kita dapat menggunakan apt-get untuk menginstal Squid di Debian atau Ubuntu: apt-get install squid3 FreeBSD Squid tersedia dalam koleksi port FreeBSD. Perintah berikut dapat digunakan untuk menginstal Squid pada FreeBSD: pkg_add -r squid31 Untuk informasi lebih lanjut tentang manajemen paket di FreeBSD, silahkan kunjungi http://www.freebsd.org/doc/handbook/packages-using.html. OpenBSD or NetBSD menginstal squid di OpenBSD atau NetBSD mirip dengan menginstal pada FreeBSD dan dapat dilakukan dengan menggunakan perintah berikut: pkd_add squid31 Untuk mempelajari lebih lanjut tentang sistem manajemen paket pada OpenBSD dan NetBSD, silakan lihat http://www.openbsd.org/ports.html#Get dan http://www.netbsd.org/docs/pkgsrc/using.html#installing-binary-packages masing-masing. Dragonfly BSD Untuk menginstal squid di Dragonfly BSD, kita dapat menggunakan perintah berikut: pkg_radd squid31 Untuk informasi lebih lanjut tentang cara menginstal paket biner pada Dragonfly BSD, silakan kunjungi http://www.dragonflybsd.org/docs/newhandbook/pkgsrc/ . Gentoo Kita dapat menginstal Squid di Gentoo Linux dengan perintah emerge, seperti yang ditunjukkan berikut ini: emerge =squid-3.1*
  • 21. Arch Linux Untuk menginstal squid di Arch Linux, kita dapat menggunakan pengelola paket pacman, seperti terlihat pada perintah berikut: pacman -S squid Untuk informasi lebih lanjut tentang pacman, silakan kunjungi https://wiki.archlinux.org/index.php/Pacman. Quick start Sebelum kita mengeksplorasi file konfigurasi secara rinci, mari kita lihat konfigurasi minimal yang Anda akan butuhkan untuk memulai. Bersiaplah dengan file konfigurasi yang terletak di /opt/squid/etc/squid.conf. Karena kita akan membuat perubahan dan penambahan yang diperlukan secara cepat setting server proxy yang minimal. cache_dir ufs /opt/squid/var/cache/ 500 16 256 acl my_machine src 192.0.2.21 # Replace with your IP address http_access allow my_machine Kita harus menambahkan baris sebelumnya di bagian atas file konfigurasi saat ini kita (memastikan bahwa kita mengubah alamat IP yang sesuai). Sekarang, kita perlu menciptakan direktori cache. Kita dapat melakukannya dengan menggunakan perintah berikut: $ /opt/squid/sbin/squid -z Kita sekarang sudah siap untuk menjalankan server proxy kita, dan ini dapat dilakukan dengan menjalankan perintah berikut: $ /opt/squid/sbin/squid Squid akan mulai mendengarkan pada port 3128 (default) pada semua antarmuka jaringan pada komputer kita. Sekarang kita dapat mengkonfigurasi browser kita untuk menggunakan Squid sebagai proxy server HTTP dengan host sebagai alamat IP komputer kita dan port 3128. Setelah browser dikonfigurasi, coba browsing ke http://www.example.com/. Itu saja! Kita telah mengkonfigurasi Squid sebagai server proxy HTTP! Sekarang mencoba browse ke http://www.example.com:897/ dan mengamati pesan yang Anda terima. Pesan yang ditampilkan adalah akses ditolak pesan yang dikirim kepada Anda oleh Squid. Sekarang, mari kita lanjutkan untuk memahami file konfigurasi secara rinci. Sintaks dari file konfigurasi File konfigurasi squid ini pada normalnya dapat ditemukan pada direktori /etc/squid/squid.conf , /usr/local/squid/etc/squid.conf , atau $ ${prefix}/etc/squid.conf dimana ${prefix} adalah nilai untuk
  • 22. opsi --prefix, yang dilewatkan ke perintah configure sebelum kompilasi squid. Dalam versi baru squid, versi didokumentasikan dari squid.conf, yang dikenal sebagai squid. conf.documented, dapat ditemukan bersama squid.conf. Dalam bab ini, kita akan membahas beberapa perintah impor yang tersedia di file konfigurasi. Untuk penjelasan rinci tentang semua perintah yang digunakan dalam file konfigurasi, silakan cek http://www.squid-cache.org/Doc/config/. Sintaks untuk file konfigurasi Squid documented mirip dengan program lainnya untuk Linux/ Unix. Secara umum, ada beberapa baris komentar yang berisi dokumentasi terkait yang berguna sebelum setiap perintah digunakan dalam file konfigurasi. Hal ini membuat lebih mudah untuk memahami dan mengkonfigurasi perintah, bahkan untuk orang yang tidak biasa mengkonfigurasi aplikasi yang menggunakan file-file konfigurasi. Biasanya, kita hanya perlu membaca komentar dan menggunakan opsi yang sesuai dan tersedia untuk perintah tertentu. Baris dimulai dengan karakter # diperlakukan sebagai komentar dan benar-benar diabaikan oleh squid ketika parsing file konfigurasi. Selain itu, setiap baris kosong juga diabaikan. # Test comment. This and the above blank line will be ignored by Squid. Mari kita lihat potongan dari file konfigurasi documented (squid.conf.documented). # TAG: cache_effective_user # If you start Squid as root, it will change its effective/real # UID/GID to the user specified below. The default is to change # to UID of nobody. # see also; cache_effective_group #Default: # cache_effective_user nobody Dalam potongan sebelumnya, baris pertama menyebutkan nama direktif, yang dalam hal ini, cache_effective_user. Baris berikut tag line memberikan informasi singkat tentang penggunaan Instruksi. Baris terakhir berisi nilai default untuk direktif ini, jika tidak di tentukan. Jenis perintah Sekarang, mari kita lihat sekilas berbagai jenis perintah dan nilai-nilai yang dapat ditentukan. Single valued directives Ini adalah perintah yang mengambil hanya satu nilai. Petunjuk-petunjuk ini tidak boleh digunakan beberapa kali di file konfigurasi karena kejadian terakhir dari perintah akan menimpa semua
  • 23. deklarasi sebelumnya. Sebagai contoh, logfile_rotate harus ditentukan hanya sekali. logfile_rotate 10 # Few lines containing other configuration directives logfile_rotate 5 Dalam kasus ini, 5 logfile_rotate akan dibuat ketika kita memicu squid untuk memutar sebuah file log. Boolean-valued or toggle directives Ini juga petunjuk bernilai tunggal(single value), tetapi instruksi ini umumnya digunakan untuk mengaktifkan atau menonaktifkan fitur. query_icmp on log_icp_queries off url_rewrite_bypass off Kita menggunakan perintah ketika kita perlu mengubah perilaku default. Multi-valued directives Perintah(direktif) jenis ini secara umum mengambil satu atau lebih dari satu nilai. Kita dapat menentukan semua nilai pada satu baris setelah perintah tersebut atau kita dapat menuliskannya pada beberapa baris dengan direktif berulang setiap waktu. Semua nilai-nilai untuk direktif yang dikumpulkan dari baris yang berbeda: hostname_aliases proxy.exmaple.com squid.example.com Secara opsional, kita dapat melewatinuliskan perintah diatas pada baris yang berbeda sebagai berikut: dns_nameservers proxy.example.com dns_nameservers squid.example.com Kedua potongan kode sebelumnya akan menginstruksikan Squid untuk menggunakan proxy.example.com dan squid.example.com sebagai alias untuk nama host dari server proxy kita. Directives with time as a value Ada beberapa instruksi yang mengambil nilai-nilai dengan waktu sebagai unit. Squid memahami kata-kata detik, menit, jam, dan seterusnya, dan ini dapat diakhiri dengan nilai-nilai numerik untuk menentukan nilai yang sebenarnya. Sebagai contoh: request_timeout 3 hours persistent_request_timeout 2 minutes Directives with file or memory size as values Nilai yang dikirimkan untuk instruksi ini umumnya diakhiri dengan unit ukuran file atau memori seperti byte, KB, MB, atau GB. Sebagai contoh: reply_body_max_size 10 MB
  • 24. cache_mem 512 MB maximum_object_in_memory 8192 KB Sebagaimana kita telah familiar dengan sintaks file konfigurasi sekarang, mari kita buka file squid.conf dan belajar tentang direktif yang sering digunakan. Have a go hero – categorize the directives Buka file konfigurasi squid documented dan menemukan setidaknya tiga instruksi dari tiap jenis yang kita bahas sebelumnya. Jangan gunakan direktif yang sudah digunakan dalam contoh. HTTP port Direktif ini digunakan untuk menentukan port dimana squid akan mendengarkan untuk koneksi klien. Secara default adalah untuk mendengarkan pada port 3128 pada semua interface yang tersedia pada mesin. Waktu untuk tindakan - pengaturan port HTTP Sekarang, kita akan melihat berbagai cara untuk mengatur port HTTP dalam file squid.conf: • Dalam bentuk yang paling sederhana, kita hanya menentukan port yang kita ingin Squid untuk mendengarkan: http_port 8080 • Kita juga dapat menentukan alamat IP dan kombinasi port yang kita ingin Squid untuk mendengarkan. Kita biasanya menggunakan pendekatan ini ketika kita memiliki beberapa interface pada mesin kita dan kita ingin Squid untuk mendengarkan hanya pada interface yang terhubung ke Local Area Network(LAN): http_port 192.0.2.25:3128 Hal ini akan menginstruksikan Squid untuk mendengarkan pada port 3128 pada interface dengan alamat IP 192.0.2.25. • Bentuk lain di mana kita dapat menentukan http_port adalah dengan menggunakan kombinasi nama host dan port: http_port myproxy.example.com:8080 Hostname akan diterjemahkan ke alamat IP oleh Squid dan kemudian Squid akan mendengarkan pada port 8080 pada alamat IP tertentu. Aspek lain dari direktif ini adalah bahwa, ia dapat mengambil beberapa nilai pada baris terpisah. Mari kita lihat apa yang akan dilakukan baris berikut: http_port 192.0.2.25:8080 http_port lan1.example.com:3128
  • 25. http_port lan2.example.com:8081 Baris ini akan memicu Squid untuk mendengarkan pada tiga alamat IP yang berbeda dan kombinasi port. Pada umumnya membantu ketika kita memiliki klien di LAN yang berbeda, yang dikonfigurasi untuk menggunakan port yang berbeda untuk server proxy. • Dalam versi terbaru dari Squid, kita juga dapat menentukan modus operasi seperti intercept, tproxy, accel, dan sebagainya. Modus Intercept akan mendukung permintaan intersepsi tanpa perlu mengkonfigurasi mesin klien. Kita akan belajar lebih banyak tentang proxy server intersepsi pada Bab 10, squid dalam Mode Intercept. tproxy modus digunakan untuk mengaktifkan dukungan proxy Linux Transparan untuk koneksi outgoing spoofing menggunakan alamat IP klien. http_port 8080 tproxy “Kita harus memperhatikan bahwa mengaktifkan mode intercept atau tproxy menonaktifkan beberapa mekanisme autentikasi. Juga, IPv6 didukung untuk tproxy tetapi membutuhkan versi kernel yang sangat baru. IPv6 tidak didukung dalam modus intercept.” Accelerator modus diaktifkan menggunakan modus accel. Ini adalah ide yang baik untuk mendengarkan pada port 80, jika kita mengkonfigurasi Squid dalam mode akselerator. Mode ini tidak dapat digunakan seperti itu. Kita harus menentukan setidaknya satu website kita ingin mempercepat. Kita akan belajar lebih banyak tentang modus akselerator dalam Bab 9, squid dalam Mode Accelerator. http_port 80 accel defaultsite=website.example.com “Kita harus mengatur port HTTP hati-hati karena port standar seperti 3128 atau 8080 dapat menimbulkan risiko keamanan jika kita tidak dapat mengamankan port dengan benar. Jika kita tidak ingin menghabiskan waktu pada pengamanan port, kita dapat menggunakan nomor port acak di atas 10000.” Apa yang baru saja terjadi? Pada bagian ini, kita belajar tentang penggunaan dari salah satu arahan yang paling penting, yaitu, http_port. Kita telah belajar tentang berbagai cara di mana kita dapat menentukan port HTTP, tergantung pada kebutuhan. Kita dapat memaksa Squid untuk mendengarkan pada beberapa interface dan port yang berbeda, pada antarmuka yang berbeda. Access control lists Access Control Lists (ACL) adalah elemen dasar untuk kontrol akses dan biasanya digunakan
  • 26. dalam kombinasi dengan perintah lain seperti http_access, icp_access, dan sebagainya, untuk mengontrol akses ke berbagai komponen Squid dan sumber daya web. ACL mengidentifikasi transaksi web dan kemudian instruksi seperti http_access, cache, dan kemudian memutuskan apakah transaksi tersebut harus diizinkan atau tidak. Juga, kita harus mencatat bahwa instruksi terkait dengan akses sumber daya umumnya berakhir dengan _access. Setiap definisi access control list harus memiliki nama dan jenis, diikuti oleh nilai-nilai untuk jenis ACL tertentu: acl ACL_NAME ACL_TYPE value acl ACL_NAME ACL_TYPE "/path/to/filename" Nilai-nilai untuk setiap nama baik ACL dapat ditentukan langsung setelah ACL_TYPE atau Squid dapat membacanya dari sebuah file terpisah. Di sini kita harus mencatat bahwa nilai-nilai dalam file harus ditulis sebagai salah satu nilai per baris. Time for action – constructing simple ACLs Mari kita membangun sebuah daftar access control untuk nama domain example.com: acl example_site dstdomain example.com Dalam kode ini, example_site adalah nama dari ACL dengan tipe dstdomain, yang mencerminkan bahwa nilai, example.com, adalah nama domain. Sekarang jika kita ingin membangun sebuah access control list yang dapat mencakup banyak situs contoh, kita memiliki tiga cara berikut kemungkinan untuk melakukannya: 1. Nilai pada satu baris: Kita dapat menentukan semua nilai yang mungkin pada satu baris: acl example_sites dstdomain example.com example.net example.org Ini bekerja dengan baik asalkan hanya ada beberapa nilai. 2. Nilai pada banyak baris: Dalam kasus daftar nilai-nilai yang kita ingin tentukan tumbuh secara signifikan, kita dapat membagi daftar dan menuliskan nilai pada beberapa baris: acl example_sites dstdomain example.com example.net acl example_sites dstdomain example.org 3. Nilai dari sebuah file: Jika kasus jumlah nilai yang ingin kita tentukan cukup besar, kita bisa menempatkan mereka dalam sebuah file yang didedikasikan dan kemudian menginstruksikan Squid untuk membaca nilai dari file tertentu: acl example_sites dstdomain '/opt/squid/etc/example_sites.txt' Kita dapat menempatkan file example_sites.txt dalam direktori yang sama dengan squid.conf sehingga mudah untuk menemukan. Isi dari file example_sites.txt harus sebagai berikut:
  • 27. # This file can also have comments # Write one value (domain name) per line example.net example.org # Temporarily remove example.org from example_sites acl example.com Nama ACL adalah case-insensitive dan multi-nilai. Jadi kita dapat menggunakan mereka, beberapa kali, dan nilai-nilai akan agregat: acl NiCe_NaMe src 192.0.2.21 acl nIcE_nAmE src 192.0.2.23 Kode ini tidak mewakili dua access control list yang berbeda. Ini hanya satu ACL dengan dua alamat, yaitu, 192.0.2.21 dan 192.0.2.23, sebagai nilai-nilai. “Kita harus hati-hati perhatikan bahwa salah satu nama ACL tidak dapat digunakan dengan lebih dari satu jenis ACL. acl destination dstdomain example.com acl destination dst 192.0.2.24 Kode di atas tidak valid karena menggunakan nama tujuan ACL di dua ACL yang berbeda jenis.” Contoh-contoh sebelumnya dari access list sangat dasar dan sederhana hanya untuk permulaan. Kita akan mengeksplorasi daftar akses dan kontrol dalam Bab 4, Chapter 4, Getting Started with Squid's Powerful ACLs and Access Rules Apa yang baru saja terjadi? Kita baru saja belajar untuk membuat beberapa ACL dstdomain sederhana dari jenis ACL, yang mengidentifikasi domain tujuan dalam permintaan. Have a go hero – understanding the pre-defined ACLs Langsung ke bagian ACL di file konfigurasi Squid dan mencoba untuk memahami ACL disediakan oleh Squid, secara default. Mengontrol akses ke server proxy Saat Squid berjalan pada server kita, dapat diakses dengan beberapa cara misalnya, melalui web browsing normal oleh pengguna akhir atau sebagai induk atau server proxy yang sibling oleh proxy server tetangga. Squid menyediakan berbagai petunjuk untuk mengontrol akses ke sumber daya yang berbeda. Berikutnya, kita akan belajar tentang pemberian atau mencabut akses ke sumber daya yang
  • 28. berbeda. HTTP akses kontrol ACL hanya membantu dalam mengidentifikasi permintaan berdasarkan aturan yang berbeda. ACL tidak berguna dengan sendirinya, mereka harus dikombinasikan dengan perintah kontrol akses untuk membolehkan atau menolak akses ke berbagai sumber daya. http_access adalah salah satu direktif seperti yang digunakan untuk memberikan akses untuk melakukan transaksi HTTP melalui squid. Mari kita lihat sintaks dari http_access: http_access allow|deny [!]ACL_NAME Mari kita lihat sintaks dari http_access: Menggunakan http_access, kita bisa membolehkan atau menolak akses ke transaksi HTTP melalui squid. Para ACL_NAME dalam kode menandakan permintaan yang mengakses harus diberikan atau dicabut. Jika tanda seru (!) Diawali dengan ACL_NAME, akses akan diberikan atau dicabut untuk semua permintaan yang tidak diidentifikasi oleh ACL_NAME. Saatnya untuk bertindak - ACL menggabungkan dan HTTP akses Mari kita lihat pada beberapa kasus untuk mengendalikan akses HTTP menggunakan ACL misalnya. Ketika kita memiliki beberapa aturan akses, squid cocok dengan sebuah permintaan tertentu terhadap mereka dari atas ke bawah dan terus melakukannya sampai tindakan tertentu (mengizinkan atau menolak) ditentukan. Harap dicatat bahwa jika kita memiliki beberapa ACL dalam aturan akses tunggal, maka permintaan yang cocok dengan semua ACL dari kiri ke kanan, dan proses Squid berhenti aturan dengan cepat menemukan sebuah ACL yang tidak dapat mengidentifikasi permintaan. Aturan akses dengan hasil beberapa ACL dalam sebuah tindakan tertentu, hanya jika permintaan diidentifikasi oleh semua ACL yang digunakan dalam aturan. acl my_home_machine src 192.0.2.21 acl my_lab_machine src 198.51.100.86 http_access allow my_home_machine http_access allow my_lab_machine ACL dan aturan akses dalam kode sebelumnya akan memungkinkan host 192.0.2.21 dan 198.51.100.86 untuk mengakses server proxy. Aturan akses tersebut juga dapat ditulis sebagai: acl my_machines src 192.0.2.21 198.51.100.86 http_access allow my_machines Perilaku default adalah untuk memungkinkan akses ke semua klien dalam jaringan area lokal dan menolak akses ke semua klien lain. Jika kita ingin klien (yang tidak dalam jaringan area lokal kita)
  • 29. untuk dapat menggunakan server proxy kita, kita harus menambahkan aturan akses tambahan untuk memungkinkan mereka. Perilaku default dari kontrol akses HTTP sedikit rumit jika akses untuk klien tidak dapat diidentifikasi oleh salah satu aturan akses. Dalam kasus tersebut, perilaku standar adalah untuk melakukan kebalikan dari aturan akses terakhir. Jika aturan akses terakhir adalah menolak, maka tindakan akan menjadi memungkinkan akses begitu pun sebaliknya. Oleh karena itu, untuk menghindari kebingungan atau perilaku yang tidak diinginkan, ini adalah praktek yang baik untuk menambahkan baris menolak semua setelah aturan akses. http_access deny all Semua parameter elemen ACL khusus yang disediakan oleh Squid dan itu mewakili semua alamat IP. Baris ini akan menolak akses dari semuanya. Karena ini berjalan setelah semua aturan akses lainnya, permintaan dari klien yang tidak dikenal akan ditolak. Apa yang baru saja terjadi? Kita belajar untuk menggabungkan ACL dengan direktif http_access untuk membolehkan atau menolak akses ke klien. Kita juga belajar bagaimana kelompok ACL yang berbeda dari jenis yang sama dan kemudian menggunakannya untuk mengontrol akses. HTTP reply access Balasan HTTP adalah respon yang diterima dari server web sesuai dengan permintaan diinisiasi oleh klien. Menggunakan direktif http_reply_access, kita dapat mengontrol akses terhadap jawaban yang diterima. Sintaks dari http_reply_access mirip dengan http_access. http_reply_access allow|deny [!]ACL_NAME Direktif ini menimpa sebagian izin yang diberikan oleh http_access. Mari kita lihat contoh: acl my_machine src 192.0.2.21 http_access allow my_machine http_reply_access deny my_machine Kita telah mengizinkan http_access ke host 192.0.2.21 tapi tetap saja tidak akan dapat mengakses situs dengan benar seperti itu tidak diperbolehkan untuk menerima balasan. Host hanya bisa membuat permintaan ke server proxy untuk dokumen web tetapi tidak akan menerima jawaban apapun. Direktif ini biasanya digunakan untuk menolak akses untuk jenis konten seperti audio, video, dan sebagainya, untuk mencegah pengguna dari mengakses konten media. Kita harus benar-benar berhati-hati saat menggunakan direktif http_reply_access. Ketika permintaan diijinkan oleh http_access, Squid akan menghubungi server asli, bahkan jika aturan dengan direktif
  • 30. http_reply_access menyangkal respon. Hal ini dapat mengakibatkan masalah keamanan serius. Sebagai contoh, perhatikan klien menerima URL jahat, yang dapat mengirimkan informasi penting pribadi seorang klien menggunakan metode HTTP POST. Jika permintaan klien melewati aturan http_access tetapi tidak mendapatkan respon ditolak oleh aturan http_reply_access, maka client akan berada di bawah mengira bahwa tidak ada yang terjadi namun hacker akan memiliki cerdik mencuri informasi pribadi klien kita. ICP access Direktif ini digunakan untuk mengontrol akses query dengan cache sekitar kita menggunakan Internet Cache Protocol (ICP). Pada dasarnya memungkinkan atau menolak akses ke port ICP. Sintaks mirip dengan http_access dan perilaku standar adalah untuk menolak semua permintaan ICP. icp_access allow|deny [!]ACL_NAME HTCP access Menggunakan direktif ini, kita dapat mengontrol apakah Squid akan merespon permintaan HTCP tertentu atau tidak. Sintaks mirip dengan http_access dan perilaku standar adalah untuk menolak semua permintaan. HTCP CLR access Cache yang berdekatan dapat membuat permintaan untuk membersihkan atau menghapus objek cache dalam bentuk permintaan HTCP CLR. Direktif htcp_clr_access dapat digunakan untuk memberikan akses membersihkan cache hanya kepada rekan terpercaya. Miss access Direktif ini digunakan untuk menentukan rekan-rekan atau klien cache semua dapat menggunakan sebagai cache induk mereka. Ketika rekan cache atau klien mencoba untuk mengambil konten menggunakan server proxy kita, permintaan dapat mengakibatkan LEWATKAN (tidak ada dalam cache) atau HIT (dapat dipenuhi dari cache kita). Umumnya, sebuah LEWATKAN diambil oleh server kita atas nama klien atau rekan. Jika kita tidak ingin klien kita atau rekan-rekan untuk mengambil konten menggunakan proxy kita, maka kita dapat menggunakan direktif miss_access, seperti yang ditunjukkan: acl bad_clients src 192.0.2.0/24 miss_access deny bad_clients miss_access allow all Kode ini tidak akan mengizinkan bad_clients untuk menggunakan proxy server kita sebagai induk proxy. Perilaku default adalah untuk memungkinkan semua klien yang lewat aturan http_access untuk
  • 31. menggunakan server proxy sebagai induk. Catatan: Tembolok (Inggris: 'cache') dalam teknologi informasi adalah mekanisme penyimpanan data sekunder berkecepatan tinggi yang digunakan untuk menyimpan data / instruksi yang sering diakses. Memori cache dimaksudkan untuk memberi kecepatan memori yang mendekati memori yang paling cepat yang bisa diperoleh, dan pada waktu yang sama menyediakan kapasitas memori yang besar dengan harga yang lebih murah dari jenis-jenis memori semikonduktor. Jika data yang diminta yang terkandung dalam cache (cache hit), permintaan ini dapat dilayani hanya dengan membaca cache, yang relatif lebih cepat. Jika tidak (cache miss), data harus menghitung ulang atau diambil dari lokasi penyimpanan aslinya, yang relatif lebih lambat. Oleh karena itu, semakin besar jumlah permintaan yang dapat dilayani dari cache, semakin cepat kinerja sistem secara keseluruhan Ident lookup access Direktif ini yang menentukan atau tidak Squid harus melakukan lookup username untuk permintaan klien TCP. acl ident_aware_hosts src 192.0.2.0/24 ident_lookup_access allow ident_aware_hosts ident_lookup_access deny all Kode ini akan memungkinkan Squid untuk melakukan lookup ident hanya untuk ident_aware_hosts. Seting default tidak melakukan lookup ident bagi semua permintaan. Hanya TC/IP berbasis ACL didukung dengan direktif ini. Cache peers or neighbors Cache teman atau tetangga adalah server proxy lain yang Squid proxy server kita dapat: Berbagi cache untuk mengurangi penggunaan bandwidth dan waktu akses Gunakan sebagai induk atau saudara server proxy untuk memenuhi permintaan klien ' Gunakan sebagai induk atau server proxy yang saudara Kita biasanya menggunakan lebih dari satu server proxy dalam jaringan yang sama untuk berbagi beban dari sebuah server tunggal untuk kinerja yang lebih baik. Server proxy dapat menggunakan cache masing-masing untuk mengambil dokumen-dokumen web cache lokal untuk meningkatkan kinerja. Mari kita lihat sekilas arahan yang diberikan oleh squid untuk komunikasi antara rekan-rekan cache yang berbeda. Declaring cache peers (Mendeklarasikan Cache rekan-rekan) Direktif cache_peer digunakan untuk memberitahu squid tentang proxy server di sekitar kita. Mari kita
  • 32. melihat sekilas pada sintaks untuk direktif ini: cache_peer HOSTNAME_OR_IP_ADDRESS TYPE PROXY_PORT ICP_PORT [OPTIONS] Dalam kode ini, HOSTNAME_OR_IP_ADDRESS adalah alamat host atau IP dari server proxy target atau rekan cache. JENIS menentukan jenis server proxy, yang pada gilirannya, menentukan bagaimana proxy server akan digunakan oleh server proxy kita. Server proxy lain dapat digunakan sebagai induk, sibling, atau anggota dari kelompok multicast. Saatnya untuk bertindak - menambahkan peer cache Mari kita menambahkan server proxy (parent.example.com) yang akan bertindak sebagai proxy ke server proxy induk kita: cache_peer parent.example.com parent 3128 3130 default proxy-only 3130 adalah port ICP standar. Jika server proxy lain tidak menggunakan ICP port standar, kita harus mengubah kode yang sesuai. Kode ini akan mengarahkan Squid untuk menggunakan parent.example.com sebagai server proxy untuk memenuhi permintaan klien dalam kasus itu tidak mampu melakukannya sendiri. Opsi default menetapkan bahwa rekan Cache harus digunakan sebagai upaya terakhir dalam skenario di mana rekan-rekan lainnya tidak dapat dihubungi. Pilihan proxy-only menentukan bahwa konten diambil menggunakan peer ini tidak harus di-cache lokal. Hal ini bermanfaat ketika kita tidak ingin mereplikasi dokumen web cache, terutama ketika dua rekan-rekan yang terhubung dengan backbone bandwidth tinggi. Apa yang baru saja terjadi? Kita menambahkan parent.example.com sebagai rekan cache atau proxy induk ke server Squid proxy kita. Kita juga menggunakan pilihan proxy-only, yang berarti permintaan yang diambil menggunakan rekan cache tidak akan di-cache di server proxy kita. Ada beberapa opsi lain di mana anda dapat menambahkan rekan cache, untuk berbagai tujuan, seperti, sebuah hirarki. Kita akan membahas rekan cache lebih rinci dalam Bab 8, Membangun Hirarki Cache Squid. Membatasi Dengan cepat akses menuju domain menggunakan peer Jika kita telah menambahkan beberapa proxy server sebagai peer Cache ke server Squid kita, kita mungkin memiliki keinginan untuk memiliki sedikit kontrol atas permintaan diteruskan ke peers. Direktif cache_peer_domain adalah cara cepat untuk mencapai kontrol yang diinginkan. Sintaks dari direktif ini cukup sederhana: cache_peer_domain CACHE_PEER_HOSTNAME [!]DOMAIN1 [[!]DOMAIN2 ...]
  • 33. Dalam kode tersebut, CACHE_PEER_HOSTNAME adalah alamat IP dari host atau peer cache yang digunakan ketika mendeklarasikan sebagai peer cache, menggunakan direktif cache_peer. Kita dapat menentukan sejumlah domain yang dapat diambil melalui peer cache. Menambahkan tanda seu (!) Sebagai awalan untuk nama domain akan mencegah penggunaan peer cache ini untuk domain tertentu. Katakanlah kita ingin menggunakan peer cache yang videoproxy.example.com untuk browsing portal video seperti Youtube, Netflix, Metacafe, dan sebagainya. cache_peer_domain videoproxy.example.com .youtube.com .netflix.com cache_peer_domain videoproxy.example.com .metacafe.com Kedua baris diatas akan mengkonfigurasi Squid untuk menggunakan cache videoproxy.example.com cache peer untuk request ke domain youtube.com, netflix.com, dan metacafe.com saja. Permintaan untuk domain lain tidak akan diteruskan menggunakan peer ini.