一、編譯安裝
下載
#wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE25.tar.gz //找到地址
#tar zxvf squid-3.0.STABLE25.tar.gz //穩(wěn)定版
#cd squid-3.0.STABLE25
#./configure --prefix=/usr/local/squid / //必須
//以下幾步可選
--enable-arp-acl /
--enable-linux-netfilter /
--enable-pthreads /
--enable-err-language="Simplify_Chinese" /
--enable-default-err-language="Simplify_Chinese" /
--enable-underscores /
--disable-internal-dns /
--enable-pf-transparent /
--enable-referer-log
//編譯必須
#make
#make install
注:--enable-internal-dns 做多個(gè)網(wǎng)站反向代理時(shí)使用,允許使用內(nèi)部dns,也可改/etc/hosts
====================================================
二、初始化
#adduser squid
#addgroup squid
#mkdir /usr/local/squid/var/cache
#mkdir /usr/local/squid/var/logs
#chown -R squid:squid /usr/local/squid/var/cache //默認(rèn)nobody運(yùn)行
#chown -R squid:squid /usr/local/squid/var/logs
#squid -z //初始化cache目錄 #squid -zX 可查看初始化過(guò)程
如果不行可以用 ./squid -z
在/etc/hosts中:加入內(nèi)部的DNS解析,比如:
192.168.1.65 www.squid.com
#whereis squid #可以查看squid主要文件裝到什么地方去了
四、創(chuàng)建緩存目錄
#/usr/local/squid/sbin/squid –z
//要看到命令行建立cache 下00 01等目錄才算成功
啟動(dòng)squid
#/usr/local/squid/sbin/squid start
重動(dòng)squid
#/usr/local/squid/sbin/squid restart
停止squid:
#/usr/local/squid/sbin/squid -k shutdown
使用新配置啟動(dòng):
#/usr/local/squid/sbin/squid -k reconfigure
通過(guò)crontab每天0點(diǎn)截?cái)?/span>/輪循日志:
0 0 * * * (/usr/local/squid/sbin/squid -k rotate)
可以用以下命令尋找已經(jīng)緩存的文件
#cd /usr/local/squid/var/cache
#find -type f |xargs ls –l
補(bǔ)充說(shuō)明
端口使用情況:
apache 81
squid 80
這樣設(shè)置的原因是方便squid直接攔截客戶(hù)端發(fā)來(lái)的http請(qǐng)求。如果不更改apache默認(rèn)的80端口,squid設(shè)置其他可用端口時(shí),例如3128,需要將80請(qǐng)求轉(zhuǎn)發(fā)到3128,命令如下:
#iptables -t nat -A PREROUTING -s 192.168.1.65 -p tcp --dport 80 -j REDIRECT 3128
注:此命令必須每次開(kāi)機(jī)后運(yùn)行,可以寫(xiě)成開(kāi)機(jī)執(zhí)行任務(wù)腳本
所以,本人感覺(jué)修改apache端口比較簡(jiǎn)單,修改步驟:
#vim /usr/local/apache/conf/httpd.conf
修改:Listen 81
如有虛擬主機(jī)設(shè)置,則還需要修改虛擬主機(jī)配置:
#vim /usr/local/apache/conf/extra/httpd-vhosts.conf
修改:NameVirtualHost *:81
<VirtualHost *:81>
三、配置/usr/local/squid/etc/squid.conf
#vim /usr/local/squid/etc/squid.conf
(4700多行配置….. 大多是注釋?zhuān)还芩鈽?biāo)移到最后加入以下配置)
#==============================cut here===================================
# 主機(jī)名(3.0加入配置),無(wú)此項(xiàng)無(wú)法啟動(dòng)
visible_hostname www.squid.com
# 管理員郵箱,會(huì)顯示在錯(cuò)誤信息頁(yè)面上,方便發(fā)生錯(cuò)誤時(shí)聯(lián)系!
cache_mgr root@localhost.localdomain
# 實(shí)現(xiàn)透明代理(squid2.7以上),其中vhost是必須的
http_port 3128 vhost vport
# 緩存設(shè)置
cache_mem 256 MB
maximum_object_size_in_memory 2 MB
# 替換機(jī)制(lru叫做“最近不常用的單元”unit一般就是常說(shuō)object, 也就是當(dāng)cache
# 中的內(nèi)容比如內(nèi)存或硬盤(pán)達(dá)到上限時(shí)就需要進(jìn)行數(shù)據(jù)的換進(jìn)和換出工作)
memory_replacement_policy lru
# 緩存目錄512M,其中一級(jí)目錄16個(gè),二級(jí)256個(gè)(每個(gè)一級(jí)下16個(gè)二級(jí))
cache_dir ufs /usr/local/squid/var/cache 512 16 256
max_open_disk_fds 0
#緩存內(nèi)容大小控制,當(dāng)cache目錄被占用到97%時(shí),內(nèi)容將被清空20%
cache_swap_low 80
cache_swap_high 97
# 錯(cuò)誤信息目錄
error_directory /usr/local/squid/share/errors/Simplify_Chinese
# 最大和最小緩存對(duì)象
minimum_object_size 0 KB
maximum_object_size 30 MB
# 日志格式
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
access_log /usr/local/squid/var/logs/page_zs_access_log combined
pid_filename /usr/local/squid/var/logs/squid.pid
# 不記錄store.log
cache_store_log none
# 指定代理服務(wù)器IP,2.5版本以上都是以cache_peer指定
# 需要將apache端口改成81(包括其虛擬機(jī)端口<這里最后補(bǔ)充說(shuō)明>)
cache_peer 127.0.0.1 parent 81 0 no-query no-digest originserver name=www
cache_peer_domain www www.squid.com
cache_peer_access www allow all
# 允許客戶(hù)端所有請(qǐng)求(這里可以設(shè)置攔截url,格式如下面兩行緩存設(shè)置)
http_access allow all
# 設(shè)置不緩存url類(lèi)型(空格隔開(kāi))
acl QUERY urlpath_regex .php .jsp .asp .pl .cgi
cache deny QUERY
#設(shè)置運(yùn)行squid用戶(hù),一般不能以root運(yùn)行
cache_effective_user squid
cache_effective_group squid
#==============================cut here================================
聯(lián)系客服