yum -y install squid
chmod -R 777 /cache1 //更改cache碟區存取權限
chmod -R 777 /Proxy-Log //更改Squid Log存取權限
chown -R squid.squid /cache1 //更改cache碟區squid 使用者權限
chown -R squid.squid /Proxy-Log //更改權限Squid Log使用者權限
/usr/sbin/squid -z //初始化cache目錄
記得關閉Selinux功能,避免無法啟動Squid,SELinux的配置在/etc/sysconfig/selinux
不要進行某些網頁的快取動作
從前面的說明我們知道 Proxy 的快取通常在記錄比較少變動的資料,如果是討論區或者是程式控制類的資料庫型態網頁, 那麼恐怕就沒有快取的需要,因為資料一直變動嘛!你總不希望你發了一帖留言,結果等一下再去瀏覽時,看到的還是舊留言吧! 所以囉,在預設的情況下,squid 已經拒絕某些資料的快取了,那就是底下的幾個設定值:
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY <==重點就是這一行!可以拒絕,不要讓後面的 URL 被快取!
我們知道通常 .php 結尾的網頁大部分就是討論區之類的變動性資料,那麼能不能出現 .php 結尾的網頁就不要快取呢? 當然可以啊!那該如何進行?我們以上面的資料來照樣造句一下吧!
例題:
只要網址列出現 .php 結尾的,就不予以快取!
答:
透過 acl 配合 cache 這兩個參數來處理即可!
[root@www ~]# vim /etc/squid/squid.conf
acl denyphp urlpath_regex \.php$
cache deny denyphp
# 在此檔案的最後新增這兩行即可!
[root@www ~]# /etc/init.d/squid restart
設置不被暫存的目錄或是檔案類型
[root@localhost ~]# vim /etc/squid/squid.conf
acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
cache deny QUERY
iptables 關閉
# /etc/init.d/iptables save
# /etc/init.d/iptables stop
# chkconfig iptables off
===================================================================================
vi /etc/crontab
0 3 * * * squid /usr/sbin/squid -k rotate
0 6 * * * root rm -r -f /Proxy-Log/*.log.6
logfile_rotate 10 //預設為 0 (disable the rotation)
======================================================================================
#/etc/rc.d/init.d/squid reload //squid 重新讀取設定檔 (方法一)
#/usr/sbin/squid -k reconfigure //squid 重新讀取設定檔 (方法二)
#less /home/log/squid/cache.log //可看到 squid 執行狀況
=======================================================================================
#vi /etc/squid/squid.conf //修改 squid 設定檔(僅列出與預設值不同處)
http_port 3128 //接受 HTTP 要求時使用的 Port
maximum_object_size 5120 KB //設定 cache 網頁資料最大值 (超過 5MB 就不 cache)
acl QUERY urlpath_regex cgi-bin \? \.php \.asp \.cgi //設定針對 CGI、PHP、ASP 檔案不作 cache
no_cache deny QUERY //設定定義名稱為 QUERY 的項目不作 cache
cache_mem 32 MB //設定存放在 RAM 裡面的 cache 大小 (為實體記憶體的 1/4)
cache_swap_low 75 //快取網頁佔用磁碟容量最低值
cache_swap_high 95 //快取網頁佔用磁碟容量渡高值
cache_dir ufs /home/log/squid/cache 2048 16 256 //設定 cache 在 HDD 裡面的大小
cache_log /home/log/squid/cache.log //記錄 squid 的執行狀況
access_log /home/log/squid/access.log squid //記錄 squid client 的 HTTP 及 IGP request
cache_store_log /home/log/squid/store.log //記錄 squid cache 哪些網頁資料
acl all src 0.0.0.0/0.0.0.0 //Access Control List Source IP 0.0.0.0 Name all
acl localhost src 127.0.0.1/255.255.255.255 //Source IP 127.0.0.1 Name localhost
acl lanuser src 192.168.1.0/24 //Source IP Range 192.168.1.0 Name lanuser
http_access allow localhost //允許定義名稱 localhost 能使用 squid 服務
http_access allow lanuser //允許定義名稱 lanuser 能使用 squid 服務
http_access deny all //禁止其它 IP 使用 squid 服務
logfile_rotate 10 //預設為 0 (disable the rotation)
=============================================================================================================
安裝 lighttpd 套件
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -ivh rpmforge-release-0.5.3-1.el6.rf.i686.rpm
yum -y install lighttpd
查尋 lighttpd 版本
rpm -qa lighttpd
啟動 lighttpd 服務
/etc/rc.d/init.d/lighttpd start
chkconfig lighttpd on
使用 yum 安裝 perl-DG 套件來支援 GD 圖能正常顯示
yum -y install perl-GD
yum install
使用 yum 安裝 perl-CGI 套件來支援 CGI
yum install perl-CGI
http://lightsquid.sourceforge.net/ 下載lightsquid
#tar zxvf lightsquid-1.8.tgz //解開壓縮檔
#cp -r ~/lightsquid-1.8 /srv/www/lighttpd/lightsquid //複製至網頁根目錄下
#cd /srv/www/lighttpd/lightsquid //切換至 lightsquid 目錄
#cp lightsquid.cfg lightsquid.cfg.default //複製預設檔 (免得日後修錯忘了預設值是什)
改 lightsquid 設定檔
#vi /srv/www/lighttpd/lightsquid/lightsquid.cfg
$cfgpath ="/srv/www/lighttpd/lightsquid"; //指定 lightsquid.cfg 設定檔路徑
$tplpath ="/srv/www/lighttpd/lightsquid/tpl"; //指定 tpl 路徑 (存取屆時顯示 html、圖檔)
$langpath ="/srv/www/lighttpd/lightsquid/lang"; //指定語系檔路徑
$reportpath ="/srv/www/lighttpd/lightsquid/report"; //指定分析完資料放置路徑
$logpath ="/Proxy-Log"; //指定要讀取 squid log 路徑
$ip2namepath ="/srv/www/lighttpd/lightsquid/ip2name"; //指定要讀取 ip2name 路徑
修改完設定檔後我們可以跑一下 check-setup.pl 指令來檢查設定檔內語法的正確性
#chmod 755 /srv/www/lighttpd/lightsquid/check-setup.pl //改變一下權限吧,預設為 644
#/srv/www/lighttpd/lightsquid/check-setup.pl
LightSquid Config Checker, (c) 2005 Sergey Erokhin GNU GPL
LogPath : /home/log/squid
reportpath: /home/web/lightsquid/report
Lang : /home/web/lightsquid/lang/eng
Template : /home/web/lightsquid/tpl/base
Ip2Name : /home/web/lightsquid/ip2name/ip2name.simple
all check passed, now try access to cgi part in browser //檢查 OK
產生 lightsquid 分析圖表
#/srv/www/lighttpd/lightsquid/lightparser.pl access.log.0 //access log 不用在打路徑了
連結分析結果網頁
vi /etc/lighttpd/lighttpd.conf
index-file.names = ( "index.php", "index.html",
"index.htm", "index.cgi", "default.htm" ) //加上 index.cgi
vi /etc/lighttpd/modules.conf
include "conf.d/cgi.conf" //這行的 mark 要拿掉
/etc/init.d/lighttpd restart
http://127.0.0.1/lightsquid/index.cgi
加入排程自動分析
#crontab -e
0 3 * * * root /usr/sbin/squid -k rotate
0 4 * * * root /srv/www/lighttpd/lightsquid/lightparser.pl access.log.0