IGOS Nusantara dan proxy server squid kompilasi: Perbedaan revisi
(→Opsi Kompilasi) |
|||
Baris 32: | Baris 32: | ||
=== Opsi Kompilasi === | === Opsi Kompilasi === | ||
− | |||
--enable-gnuregex \ | --enable-gnuregex \ | ||
--enable-async-io=32 \ | --enable-async-io=32 \ |
Revisi per 26 Januari 2011 08.54
Optimasi squid dapat lebih ditingkatkan dengan melakukan kompilasi dari source squid. Berikut ini kompilasi untuk spesifikasi:
- Sistem Operasi memakai IGOS Nusantara 2010
- Intel(R) Xeon(TM) CPU 3.00GHz
- RAM 1 GB (yup memori masih kecil, harusnya update ke 4 GB)
- Harddisk 2 x 80 GB SCSI
Daftar isi
Harddisk
- Harddisk1: /dev/sda (untuk menyimpan sistem operasi)
- Harddisk2: /dev/sdb (untuk menyimpan cache squid)
Instal IGOS Nusantara 2010 untuk Server
Sistem Operasi yang akan dipasang di server sebaiknya TIDAK dipasang dari IGN2010 LiveCD. Versi IGN2010 LiveCD ditujukan untuk penggunaan Desktop. Server sebaiknya dipasang program/aplikasi minimal. Instalasi minimal dapat dilakukan dengan:
- Gunakan IGN2010 versi DVD Installer
- Booting memakai IGN2010 DVD
- Saat awal muncul menu instalasi pilih "Instal IGOS Nusantara Minimal (konsol)" [[1]]
Tahap kompilasi
Pasang GCC
# yum -y install gcc
Unduh squid-3.1.10.tar.bz2
# mkdir /root/sumber # cd /root/sumber # wget http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.10.tar.bz2
Buat group dan user
Group dan user yang akan dipakai untuk menjalankan squid dibuat dengan cara:
# groupadd _squid # useradd _squid -c "Squid Proxy" -d /dev/null -s /bin/false -g _squid
Catatan: tanda "_" di depan squid ditambahkan demi alasan keamanan[1].
Opsi Kompilasi
--enable-gnuregex \ --enable-async-io=32 \ --with-aufs-threads=32 \ --with-pthreads \ --with-aio \ --with-dl \ --enable-storeio=aufs \ --enable-removal-policies=heap \ --enable-icmp \ --enable-delay-pools \ --disable-wccp \ --enable-snmp \ --enable-cache-digests \ --enable-default-err-languages=English \ --enable-err-languages=English \ --enable-linux-netfilter \ --disable-ident-lookups \ --disable-hostname-checks \ --enable-underscores
Keterangan parameter
- --enable-async-io untuk mengaktifkan asynchronous I/O dalam proses baca/tulis ke harddisk. Memakai 16 bila memakai satu harddisk jenis lama (buffer hanya 2 MB). Bila memakai harddisk model baru dengan buffer 8 MB, 16 MB atau 32 MB dapat memakai 32.
- --enable-useragent-log berguna agar squid mencatat useragent di entri log
- --enable-snmp aktifkan snmp, misal mencatat statistik squid lalu ditampilkan dalam bentuk grafik.
- --enable-cache-digests harus diaktifkan jika memakai cache peer.
- --enable-storeio="aufs" adalah metoda penyimpanan metode I/O. AUFS adalah Asynchronous, memiliki performa yang optimal di Linux.
- --enable-removal-policies="heap,lru" adalah pilihan opsi untuk removal policies
- --with-maxfd=16384
- --enable-poll
- --disable-ident-lookups menghentikan squid dari melihat ident di setiap koneksi, bisa juga untuk mencegah serangan DDOS (membuka ribuan koneksi) yang dapat mematikan squid server
- --enable-truncate memerintahkan squid untuk selalu menggunakan truncate() ketimbang unlink() ketika menghapus file cache.
- --enable-delay-pools
Konfigurasi squid
... buat ...
cache memakai reiserfs
Pada bagian atas tulisan ini ada informasi tentan harddisk yang dipakai. Harddisk kedua masih kosong dan akan di format memakai reiserfs. Harddisk kedua ada di /dev/sdb1. Hardisk kedua (tempat direktori cache) memakai format ReiserFS.
Pasang reiserfs-utils
# yum -y install reiserfs-utils
Format harddisk kedua
Jika unmount /dev/sdb1 lebih dulu:
# umount /dev/sdb1
Format partisi /dev/sdb1, jika ada data lama isi akan hilang semua. Pastikan TIDAK SALAH ketik
# mkfs.reiserfs /dev/sdb1 mkfs.reiserfs 3.6.21 (2009 www.namesys.com) A pair of credits: Jeremy Fitzhardinge wrote the teahash.c code for V3. Colin Plumb also contributed to that. Hans Reiser was the project initiator, source of all funding for the first 5.5 years. He is the architect and official maintainer. Guessing about desired format.. Kernel 2.6.35.6-37.ign5.i686.PAE is running. Format 3.6 with standard journal Count of blocks on the device: 17921280 Number of blocks consumed by mkreiserfs formatting process: 8758 Blocksize: 4096 Hash function used to sort names: "r5" Journal Size 8193 blocks (first block 18) Journal Max transaction length 1024 inode generation number: 0 UUID: <no libuuid installed> ATTENTION: YOU SHOULD REBOOT AFTER FDISK! ALL DATA WILL BE LOST ON '/dev/sdb1'! Continue (y/n):
Konfirmasi dengan mengetik "y" lalu ENTER
Continue (y/n):y Initializing journal - 0%....20%....40%....60%....80%....100% Syncing..ok ReiserFS is successfully created on /dev/sdb1.
Modifikasi /etc/fstab
Lakukan modifikasi:
/dev/sdb1 /cache1 reiserfs defaults,notail,noatime 1 2
Folder /cache1 adalah nama direktori yang akan dipakai untuk menyimpan cache.
Mengatur Log
mkdir /var/log/squid touch /var/log/squid/access.log touch /var/run/squid.pid chown -R _squid:_squid /squid/cache/ chown -R _squid:_squid /var/run/pid chown -R _squid:_squid /var/log/squid/access.log
Modifikasi /etc/sysctl.conf
Tambahkan baris berikut pada akhir file /etc/sysctl.conf
fs.file-max = 65535 net.core.rmem_default = 262144 net.core.rmem_max = 262144 net.core.wmem_default = 262144 net.core.wmem_max = 262144 net.ipv4.tcp_rmem = 4096 87380 8388608 net.ipv4.tcp_wmem = 4096 65536 8388608 net.ipv4.tcp_mem = 4096 4096 4096 net.ipv4.tcp_low_latency = 1 net.core.netdev_max_backlog = 4000 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_syn_backlog = 16384
Penambahkan entri /etc/security/limits.conf
- - nofile 65535
Boot ulang server
Lakukan reboot, kemudian jalankan squid.
[1] http://forum.linux.or.id/viewtopic.php?f=40&t=20030#p117128 [x] http://www.scribd.com/doc/47172020/Cara-Instal-dan-Optimasi-Squid-Proxy-Server