squid 安装配置

Squid集群做CDN全网加速http://www.php-oa.com/2007/12/27/squid-dnspod.html
http://bbs.chinaunix.net/viewthread.php?tid=798564     squid-2.6.STABLE1-20060726之Web加速实做
Squid--Linux下的一个优秀代理服务器软件使用详解  http://www.phpchina.com/html/87/n-33787.html

 

http://www.phpchina.com/html/87/n-33787.html
http://wiki.ubuntu.org.cn/Squid%E9%85%8D%E7%BD%AE%E8%AF%A6%E8%A7%A3
http://blog.s135.com/book/squid/ Squid中文权威指南

 

http://xuliangyong.iteye.com/blog/606980  利用squid refresh_pattern缓存图片

 

 

http://linux.chinaunix.net/techdoc/develop/2008/07/19/1018442.shtml    Squid优化

http://hi.baidu.com/jackbillow/blog/item/09cd126094fa5dd88cb10d32.html

 


http://www.hiadmin.com/squid-3%E5%8A%A0%E9%80%9F%E6%A8%A1%E5%BC%8F%E9%85%8D%E7%BD%AE/     加速模式配置

 



http://www.skyhe.com/blog/bloget/home/review.asp?ID=600

http://bbs.winos.cn/thread-48606-1-7.html由于最近在国外部署一台Squid反向代理加速,分享一下,Windows下Squid的配置过程

http://bbs.cd-dns.com/read-htm-tid-8037-page-e-fpage-2.html   推荐

http://blog.sina.com.cn/s/blog_5058ff560100e040.html

 

 

对普通的单位上网用户,Squid可充当代理服务器;而对Sina,NetEase这样的大型站点,Squid又充当WEB加速器。


主服务器群,然后在利用Squid逆向缓存web80端口来加速自己的网站.各大门户网站象163,sina,chinaitlab之类基本都是使用的这种技术,好处是大大的有。比如加速了网络和可以防黑客(因为他们见到的都是CDN的主机)

Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。

Squid能够缓存任何数据吗?不是的。象缓存信用卡帐号、可以远方执行的scripts、经常变换的主页等是不合适的也是不安全的。Squid可以自动的进行处理,你也可以根据自己的需要设置Squid,使之过滤掉你不想要的东西。

Squid有好多高级的功能,如做WEB服务器的高速缓存,做二级代理服务器,做为防火墙,以及怎样设定过滤规则等


Squid是全功能的代理服务器软件

 

 

 

 

 

================= 安装配置

 

 

 

安装部分:
wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE26.tar.gz
yum -y install gcc gcc-c++ automake autoconf libtool make
yum -y install perl
tar -zxf squid-3.0.STABLE26.tar.gz -C /usr/local/src/;cd /usr/local/src/squid-3.0.STABLE26

./configure --prefix=/usr/local/squid-3.0.STABLE26/
make && make install
cd /usr/local/squid-3.0.STABLE26/
chown -R nobody:nobody var/

#拷贝原有的配置文件进行配置:
scp 192.168.1.122:/usr/local/squid/etc/{ssc.conf,squid.conf} etc/
sed -i "s/\/usr\/local\/squid/\/usr\/local\/squid-3.0.STABLE26/g" etc/squid.conf

#初始化:
/usr/local/squid-3.0.STABLE26/sbin/squid -z
#开启squid服务:
/usr/local/squid-3.0.STABLE26/sbin/squid

#修改防火墙:
vim /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -i eht1 -p tcp --dport 80 -j ACCEPT\
#重启防火墙:
/etc/init.d/iptables restart

#添加squid开机启动
echo "/usr/local/squid-3.0.STABLE26/sbin/squid" >> /etc/rc.local

#Squid修改配置后的重启方法:
/usr/local/squid-3.0.STABLE26/sbin/squid -k reconfigure

 

 

 

 

squid -k shutdown  停止

测试配置是否正确,并根据错误修改配置文件
# /usr/sbin/squid  -k parse

 

================= squid.conf 详细说明

 

 

visible_hostname squid1.ihompy.com
#设定squid的主机名,如无此项squid将无法启动


http_port 80 accel vhost vport
#设定squid为accel加速模式,vhost必须要加.否则将无法将主机头转发至后端服务器,访问时就会出现无法找到主机头的错误

也可以不启用accel加速模式:http_port 80 vhost vport


cache_peer www.contentchina.com parent 80 0 no-query originserver name=contentchina
cache_peer bbs.contentchina.com parent 80 0 no-query originserver name=bbs
cache_peer www.ihompy.com parent 80 0 no-query originserver name=ihompy
#定义不同的父节点 ,将节点设为no-query以及originserver说明这些节点是实际服务器

 

 


cache_peer_domain contentchina www.contentchina.com
cache_peer_domain bbs  bbs.contentchina.com
cache_peer_domain ihompy www.ihompy.com
#设定不同域名转发到不同的cache_peer上 ,如果没有这项.不同域名的域名可能被分发到同一台服务器上.

 

 

--------170,171是squid

#总导航:在本机127.0.0.1处理
cache_peer 127.0.0.1 parent 8080 0 originserver name=wwwnav
cache_peer_domain wwwnav 2.ss.com
cache_peer_domain wwwnav 2.tt.com
cache_peer_domain wwwnav 120.53.56.170
cache_peer_domain wwwnav 2.ww.com

 

#[集群一]:当用户访问http://120.53.56.170/tst/account/login.html实际是请求到:http://1.1.1.81/tst/account/login.html
cache_peer 1.1.1.81 parent 80 0 no-query originserver name=test1bl
cache_peer_domain test1bl 120.53.56.170

#[集群二]
cache_peer 1.1.1.83 parent 80 0 no-query originserver name=test2bl
cache_peer_domain test2bl 120.53.56.171

---------

 

 


acl all src 0.0.0.0/0.0.0.0
http_access allow all
#允许所有客户端访问

 

--------- 权限设置

 

acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
#acl all src all

acl localnet src 10.0.0.0/8    # RFC1918 possible internal network
acl localnet src 172.16.0.0/12    # RFC1918 possible internal network
acl localnet src 192.168.0.0/16    # RFC1918 possible internal network

acl SSL_ports port 443
acl Safe_ports port 80        # http
#acl Safe_ports port 8080        # lt http
acl Safe_ports port 21        # ftp
acl Safe_ports port 443        # https
acl Safe_ports port 70        # gopher
acl Safe_ports port 210        # wais
acl Safe_ports port 1025-65535    # unregistered ports
acl Safe_ports port 280        # http-mgmt
acl Safe_ports port 488        # gss-http
acl Safe_ports port 591        # filemaker
acl Safe_ports port 777        # multiling http
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow all
icp_access allow localnet
icp_access allow all

htcp_access allow localnet
htcp_access allow all

 

---------

 

 


cache_log /var/log/squid/cache.log
#记录日志
#***********ACL存取控制*************
acl QueryString url_regex \.php?
#***********缓冲存取控制*************
no_cache deny QueryString
#不对符合QueryString的ACL内容进行缓冲

 

 


#***********性能优化配置 *************

hierarchy_stoplist cgi-bin ?
cache_mem 1024 MB
cache_dir ufs /usr/local/squid-3.0.STABLE26/var/cache 10240 16 512
access_log /usr/local/squid-3.0.STABLE26/var/logs/access.log squid
coredump_dir /usr/local/squid-3.0.STABLE26/var/cache
######
maximum_object_size 4096 KB #大于此容量的对象将不会被保存在磁盘上 ,默认大小是4M,如果squid服务器用于缓冲flash等大型文件,建议将此值变大.否则过大的文件在下次重启后将需要重新获取
minimum_object_size 0 KB
maximum_object_size_in_memory 1024 KB #最大位于内存中的对象的大小,默认大小是8K,如果服务器内存很大.可以适当提高此值的大小,建议根据网站的80%图片的大小来定.或者根据WEB服务器实际存取文件中最常访问的文件大小来定制
acl static_content urlpath_regex -i \.js$ \.css$ \.html$ \.png$ \.gif$ \.swf$ \.jpg$
no_cache deny !static_content  #no_cache deny ** --设置不记入缓存
######

cache_store_log /usr/local/squid-3.0.STABLE26/var/logs/store.log
refresh_pattern ^ftp:            1440    20%    10080
refresh_pattern ^gopher:        1440    0%    1440
refresh_pattern -i (/cgi-bin/|\?)    0    0%    0
refresh_pattern .            0    20%    4320
icp_port 3130

 

 

 

---------- refresh_pattern 缓存时间

 

 


refresh_pattern 的语法是:
refresh_pattern [-i] regexp min percent max [options]
min, max的单位是分钟,percent就是百分比。
refresh_pattern 的算法如下:(当前时间定义为CURRENT_DATE)
1) If ((CURRENT_DATE-DATE(就是LM里定义的时间)) < min),cache是新鲜的
2) else if ((CURRENT_DATE-DATE) < (min + (max-min)*percent ),cache是新鲜的
3) else cache是过期的
cache过期就需要从后面server取新鲜内容。

如果希望页面一进入cache就不删除,直到被主动purge掉为止,可以加上ignore-reload选项
一般情况可以使用 reload-into-ims。
举例:

refresh_pattern -i \\.gif$   1440   50%   2880     ignore-reload
refresh_pattern -i \\.jpg$   1440   50%   2880     ignore-reload
refresh_pattern -i \\.png$   1440   50%   2880     ignore-reload

refresh_pattern -i \\.mp3$   1440   50%   2880     ignore-reload
refresh_pattern -i \\.wmv$   1440   50%   2880     ignore-reload
refresh_pattern -i \\.rm$   1440   50%   2880     ignore-reload
refresh_pattern -i \\.swf$   1440   50%   2880     ignore-reload
refresh_pattern -i \\.mpeg$   1440   50%   2880     ignore-reload
refresh_pattern -i \\.wma$   1440   50%   2880     ignore-reload

refresh_pattern -i \\.css$ 10 50% 60 reload-into-ims
refresh_pattern -i \\.js$ 10 50% 60 reload-into-ims
refresh_pattern -i \\.xml$ 10 50% 30 reload-into-ims


reload-into-ims  该选项让squid在确认请求里,以no-cache指令传送一个请求。换句话说,squid在转发请求之前,对该请求增加一个If-Modified-Since头部。注意这点仅仅在目标有Last-Modified时间戳时才能工作。外面进来的请求保留no-cache指令,以便它到达原始服务器。

 

----------

你可能感兴趣的:(PHP,cache,asp.net,Access,bbs)