2013年8月15日 星期四

CentOS 6.4 安裝 Squid、Lightsquid、Lighttpd

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

沒有留言:

張貼留言