在团800运维工作总结之squid做回源图片的二级缓存
# 主機(jī)名(3.0加入配置),無(wú)此項(xiàng)無(wú)法啟動(dòng)
visible_hostname 172.16.1.80
# 管理員郵箱,會(huì)顯示在錯(cuò)誤信息頁(yè)面上,方便發(fā)生錯(cuò)誤時(shí)聯(lián)系!
cache_mgr yanchao@rd.tuan800.com
# 實(shí)現(xiàn)透明代理(squid2.7以上),其中vhost是必須的
http_port 8091 vhost vport
icp_port 3130
# 緩存設(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
# 緩存目錄50G,其中一級(jí)目錄16個(gè),二級(jí)256個(gè)(每個(gè)一級(jí)下16個(gè)二級(jí))
cache_dir ufs /data1/squid/var/cache 500000 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 %tr
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指定,sibling是2臺(tái)squid服務(wù)的緩存不同內(nèi)容,當(dāng)一個(gè)節(jié)點(diǎn)沒(méi)有命中去另一個(gè)節(jié)點(diǎn)查找,主要為了減少負(fù)載,后端是1.84 85 86沒(méi)命中緩存的圖片裁剪服務(wù)器
cache_peer 172.16.1.83 sibling 8091 3130
cache_peer 172.16.1.82 sibling 8091 3130
cache_peer 172.16.1.84 parent 10001 0 no-query originserver round-robin name=resize1
cache_peer 172.16.1.85 parent 10001 0 no-query originserver round-robin name=resize2
cache_peer 172.16.1.86 parent 10001 0 no-query originserver round-robin name=resize3
cache_peer_domain resize1 resize2 resize3
#緩存過(guò)期
refresh_pattern -i \.jpg$ 1440 90% 43200 reload-into-ims
refresh_pattern -i \.jpeg$ 1440 90% 43200 reload-into-ims
refresh_pattern -i \.webp$ 1440 90% 43200 reload-into-ims
refresh_pattern -i \.png$ 1440 90% 43200 reload-into-ims
# 允許客戶端所有請(qǐng)求(這里可以設(shè)置攔截url,格式如下面兩行緩存設(shè)置)
http_access allow all
#設(shè)置運(yùn)行squid用戶,一般不能以root運(yùn)行
cache_effective_user squid
cache_effective_group squid
~ ? ? ? ? ? ? ? ??
命令
Squid日常維護(hù)過(guò)程中,常用的一些命令:
1,初始化你在 squid.conf 里配置的 cache 目錄
squid -z
如果有錯(cuò)誤提示,請(qǐng)檢查你的 cache目錄的權(quán)限。
可以使用使用更改目錄權(quán)限:
chown -R squid:squid /cache目錄
2,對(duì)你的squid.conf 排錯(cuò),即驗(yàn)證 squid.conf 的 語(yǔ)法和配置。
squid -k parse
如果squid.conf 有語(yǔ)法或配置錯(cuò)誤,這里會(huì)返回提示你,如果沒(méi)有返回,嘗試啟動(dòng)squid。
3,在前臺(tái)啟動(dòng)squid,并輸出啟動(dòng)過(guò)程。
/usr/local/squid/sbin/squid -N -d1
如果有ready to server reques相關(guān)信息,說(shuō)明Squid啟動(dòng)成功。
然后 ctrl + c,停止squid,并以后臺(tái)運(yùn)行的方式啟動(dòng)它。
4,啟動(dòng)squid在后臺(tái)運(yùn)行。
squid -s
可以使用 ps -ax |grep squid 來(lái)查看squid進(jìn)程是否存在。
5,停止 squid
squid -k shutdown
6,重引導(dǎo)修改過(guò)的 squid.conf
squid -k reconfigure -f /XXX/squid.conf
當(dāng)squid進(jìn)行過(guò)配置更改后,可以使用該命令進(jìn)行squid配置重載。
7,把squid添加到系統(tǒng)啟動(dòng)項(xiàng)
vi /etc/rc.d/rc.local
/usr/local/squid/sbin/squid -s
8,修改cache 緩存目錄的權(quán)限。
chown -R squid:squid /cache目錄
cache緩存目錄根據(jù)自己配置進(jìn)行更改,squid用戶和組是 squid,squid
(注:在FreeBSD系統(tǒng)中,如果我們的squid監(jiān)聽(tīng)的是80端口時(shí),只有root用戶才能啟動(dòng))。
9,修改squid 日志目錄的權(quán)限
chown -R squid:squid 定義的日志文件所在目錄
這一步并不是適合每一個(gè)使用squid的用戶.意為讓squid有權(quán)限在該目錄進(jìn)行寫(xiě)操作 。
10,查看你的日志文檔。
more /usr/local/squid/var/logs/access.log | grep TCP_MEM_HIT
該指令可以看到在squid運(yùn)行過(guò)程中,有那些文件被squid緩存到內(nèi)存中,并返回給訪問(wèn)用戶。
more /usr/local/squid/var/logs/access.log | grep TCP_HIT
該指令可以看到在squid運(yùn)行過(guò)程中,有那些文件被squid緩存到cache目錄中,并返回給訪問(wèn)用戶。
more /usr/local/squid/var/logs/access.log | grep TCP_MISS
該指令可以看到在squid運(yùn)行過(guò)程中,有那些文件沒(méi)有被squid緩存,而是從原始服務(wù)器獲取并返回給訪問(wèn)用戶。
二.squid命中率分析
/usr/local/squid/bin/squidclient -p 80 mgr:info
/usr/local/squid/bin/squidclient -p 80 mgr:5min
可以看到詳細(xì)的性能情況,其中PORT是你的proxy的端口,5min可以是60min
取得squid運(yùn)行狀態(tài)信息: squidclient -p 80 mgr:info
取得squid內(nèi)存使用情況: squidclient -p 80 mgr:mem
取得squid已經(jīng)緩存的列表: squidclient -p 80 mgr:bjects. use it carefully,it may crash
取得squid的磁盤(pán)使用情況: squidclient -p 80 mgr:diskd
強(qiáng)制更新某個(gè)url:squidclient -p 80 -m PURGE?http://www.xxx.com/xxx.php
更多的請(qǐng)查看:squidclient-h 或者 squidclient -p 80 mgr:
查命中率:
squidclient -h IP(具體偵聽(tīng)I(yíng)P) -p 80(具體偵聽(tīng)端口) mgr:info
三、定期清除swap.state內(nèi)無(wú)效數(shù)據(jù)
/path/to/squid/sbin/squid -k rotate -f /path/to/squid/conf_file
vi /etc/crontab
0??????? 0?????? *?????? *?????? *?????? root??? /usr/local/sbin/squid -k rotate -f /usr/local/etc/squid/squid1.conf
當(dāng)squid應(yīng)用運(yùn)行了一段時(shí)間以后,cache_dir對(duì)應(yīng)的swap.state文件就會(huì)變得越來(lái)越大,里面的無(wú)效接口數(shù)據(jù)越來(lái)越多,這可能影響squid的響應(yīng)時(shí)間,因此需要使用rotate命令來(lái)使squid清理swap.state里面的無(wú)效數(shù)據(jù),減少swap.state的大小。
辦公室做的squid給客服用,主要是針對(duì)本公司網(wǎng)站圖片做的緩存
visible_hostname 192.168.10.89
cache_mgr yanchao@rd.tuan800.com
http_port 8091 vhost vport
icp_port 3130
cache_mem 30000 MB
maximum_object_size_in_memory 2 MB
memory_replacement_policy lru
cache_dir ufs /data1/squid/var/cache 50000 16 256
max_open_disk_fds 0
cache_swap_low 80
cache_swap_high 97
error_directory /usr/local/squid/share/errors/Simplify_Chinese
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
cache_store_log none
cache_peer 192.168.10.89 sibling 8091 3130
cache_peer 192.168.10.59 sibling 8091 3130
cache_peer * parent 80 0 no-query originserver name=d
cache_peer * parent 80 0 no-query originserver name=j
cache_peer * parent 80 0 no-query originserver name=a
cache_peer * parent 80 0 no-query originserver name=b
cache_peer * parent 80 0 no-query originserver name=c
cache_peer * parent 80 0 no-query originserver name=e
cache_peer * parent 80 0 no-query originserver name=f
cache_peer * parent 80 0 no-query originserver name=g
cache_peer * parent 80 0 no-query originserver name=h
cache_peer * parent 80 0 no-query originserver name=i
cache_peer_domain d *.com
cache_peer_domain a *.com
cache_peer_domain b *.com ?
cache_peer_domain c *.com
cache_peer_domain e *.com
cache_peer_domain f *.com
cache_peer_domain g *.com
cache_peer_domain h *.com ?
cache_peer_domain i *.com
cache_peer_domain j *.com
refresh_pattern -i \.jpg$ 1440 90% 43200 reload-into-ims
refresh_pattern -i \.jpeg$ 1440 90% 43200 reload-into-ims
refresh_pattern -i \.webp$ 1440 90% 43200 reload-into-ims
refresh_pattern -i \.png$ 1440 90% 43200 reload-into-ims
http_access allow all
cache_effective_user squid
cache_effective_group squid
?? ? ? ? ?
轉(zhuǎn)載于:https://blog.51cto.com/4249964/1746676
總結(jié)
以上是生活随笔為你收集整理的在团800运维工作总结之squid做回源图片的二级缓存的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何获得阿里技术offer:从《阿里DB
- 下一篇: Oracle中group by用法