`
ordinary
  • 浏览: 79482 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Squid(安装配置)

阅读更多

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } TD P { margin-bottom: 0cm } A:link { so-language: zxx } -->

前言:

          公司最近要把图片缓存到web中,提高网站的访问效率,让本人研究下squid。查了一天也走了不少弯路。

         首先给大家提个醒,squid2.5之前和之后的配置相差很远,网上的squid资料,2.5之前占大部分,本人就吃了这亏。

          squid的权威指南见:http://home.arcor.de/pangj/squid/chap02.html。个人感觉太罗嗦。本文简要介绍下

squid简介 

   Squid 是一种代理服务器,它实现了对 HTTPFTP 和 Gopher 协议的缓存。Squid 能够使用访问控制列表(Access Control ListACL)来允许或拒绝访问。Squid 具备强大的可配置能力以及鲁棒性,而且用户会发现,该软件非常容易学习。更好的是,可将 Squid 配置为透明代理,即好像用户根本不知道有 Squid 一样。

squid配置

          squid的在应用系统的中的架构见:http://www.ibm.com/developerworks/cn/linux/l-cn-squid/。基本配置如下:

        1、安装

              

       写道

wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE13.tar.gz
tar zxvf squid-3.0.STABLE13.tar.gz
cd squid-3.0.STABLE13
./configure –prefix=/squid –disable-carp –with-aufs-threads=32 –with-pthreads –enable-storeio=’ufs,aufs,null’ –enable-disk-io=’AIO,Blocking’ –enable-removal-policies=’heap,lru’ –disable-wccp –enable-kill-parent-hack –disable-snmp –disable-poll –disable-select –enable-auth=basic –with-aio –disable-ident-lookup –with-filedescriptors=65536

 

     或

 写道
./configure –prefix=/squid –disable-carp –with-aufs-threads=32 –with-pthreads –enable-storeio=’ufs,aufs,null’ –enable-disk-io=’AIO,Blocking’ –enable-removal-policies=’heap,lru’ –disable-wccp –enable-kill-parent-hack –disable-snmp –disable-poll –disable-select –enable-auth=basic –with-aio –disable-ident-lookup –with-filedescriptors=65536 –disable-internal-dns –enable-err-language=”Simplify_Chinese” –enable-default-err-languages=”Simplify_Chinese”

 

 

       make

       make install

      这样就安装完成。

 

 

      在ubuntu下还个简单的办法,如下:

 写道
./configure –prefix=/squid –disable-carp –with-aufs-threads=32 –with-pthreads –enable-storeio=’ufs,aufs,null’ –enable-disk-io=’AIO,Blocking’ –enable-removal-policies=’heap,lru’ –disable-wccp –enable-kill-parent-hack –disable-snmp –disable-poll –disable-select –enable-auth=basic –with-aio –disable-ident-lookup –with-filedescriptors=65536 –disable-internal-dns –enable-err-language=”Simplify_Chinese” –enable-default-err-languages=”Simplify_Chinese”
 

 

       2、配置

       squid 的缓存主要是靠squid.conf文件,ubuntu安装方式时,该文件在/etc/squid/squid.conf(本人是通过ubuntu自动安装的,如果不知道文件在哪,可以通过命令 sudo / -name squid.conf查找)。

      配置如下:

        http_port 80   选项 http_port 指定squid监听HTTP请求的端口,一般都设置成80端口,这样使用户感觉不到反向代理的存在,就像访问真正的WEB服务器一样。 

        cache_mem 128 MB          
共享内存大小(squid在提供服务的时候所使用的内存

        maximum_object_size_in_memory 512 KB  
最大内存缓存OBJECT~如果超过则不再内存中缓存~而存入IO中!

        memory_replacement_policy lru      
替换机制  (lru叫做 最近不常用的单元 unit一般就是常说的object 也就是当cache中的内容比如内存或硬盘达到上限时的 那么就需要进行数据的换进和换出工作

        cache_dir null /tmp  cache_dir
存储cache内容也就是object的物理存放点 

        cache_dir ufs /tmp1 10000 16 256  (/tmp size L1 L2) 
        100G
其中1层目录16个 并且每个1层目录下又有2562层目录[或者说子目录]#磁盘缓存的类型和目录,大小,一二级目录的设置,这里磁盘缓存大小是10G ufs是一种文件存储方式 因为os一般都是从内存获取数据 那么内存的东西必须最后写的硬盘上~ sync 同步的时候用的ufs 那么squid也是一样 ufs一般是同时写入内存和硬盘 
注意:size是按照M为单位的也就这个目录中最大存储容量的上限 

         max_open_disk_fds 0 

         minimum_object_size 0 KB 

         maximum_object_size 4096 KB 

         logformat squid  %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
设置access_log中日志存储的格式~ 

        access_log /usr/local/squid3/var/logs/access.log squidaccess_log
为客户端请求的日志cache_log /usr/local/squid3/var/logs/cache.logsquid自身的运行日志  

       pid_filename /usr/local/squid3/var/logs/squid.pid 
此三项是设置PID和日志文件位置 

      cache_store_log none  
不记录store.log 

      visible_hostname liuyu.blog.51cto.com  
      liuyu.blog.51cto.com    
只是标签  有利于检查是否你的那台设备在提供服务! 

 cache_peer 192.168.1.53       parent    80  0 no-query round-robin max-conn=32 originserver 
squid2.5
以上都是用的cache_peer来指定所需要代理的服务器的IP 这一点很重要! 由于本例squid web  不在同一服务器,因此需要cache_peer 指定相应WEB服务器IP 

acl all src 0.0.0.0/0.0.0.0 

acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe 
cache deny QUERY 

cache_effective_user squid 
cache_effective_group squid 


在这里我所以的日志都记录在:/usr/local/squid3/var/logs里给目录相应的权限 
chmod 666 -R /usr/local/squid3/var/logs 
chown squid:squid -R /usr/local/squid3/var/logs

         3.测试配置是否正确
# /usr/local/squid2/sbin/squid -k parse

        4.启动squid 
  /usr/local/squid3/sbin/squid -Nd1
   ps aux |grep squid  
查看是否启动

         5、默认的日志文件

  默认的日志文件在/var/log/squid目录下。

 

常见错误:

 

 写道
GET /default.aspx?n=1641570119&wa=wsignin1.0 HTTP/1.1
Accept: */*
Accept-Language: en-gb
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; T312461;
Q312461; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)
Host: mail.live.com
Connection: Keep-Alive
Cookie: MUID=9B7E2A9D963B4134BA0678B2B1153D98;
wlidperf=throughput=4&latency=828&FR=L&ST=1232423228769;
ck-9C1EBE25BAD77817=633679144877238362;
mktstate=S=-1074279018&U=&E=&P=&B=en-gb; mkt1=norm=en-gb;
BS=Downlevel=0&WinIEOnly=1&MSIEVersion=7.0&Win=1&Firefox=0&Safari=0;
s_cc=true; s_sq=%5B%5BB%5D%5D; PPLState=1;
RPSTAuth=EwDYARAnAAAUWkziSC7RbDJKS1VkhugDegv7L0eAAPpQcMejHliaDG697ETIGNF092E+hI17nqANeWUKniIvQ3a+Kbcd2NfmA698k6fKaHuuUtbvMh39zLTlwfAnP83i2JUK7SUvjWiz/asVor9uNJgQLmn66puXXpHygtDMp11A+XffRYVOCffUxFbPZL0aeziyE9qbcgxgwOrhteqSA2YAAAhp5sm6Ay+n5CgBSv0PpIfGjbo0w/YcClwtUZpKbESj8/dFAg7+89Z5Eik4jAVYrKNC59PJVQ3gky4YIYkqebcsaxMG/6/1WHLvkzF5Hg2ofRhyXqb/3Ng9/VaJEE2ilUYY9lt0dFMyHxN/FKkZ0LtXttrqXOhSlbD/wV9MRXWlXlVGlYruUMDk8r6WFOk9D9d+4iA4d8MfnwZKtosB179Ei5rUyjjtzrN0FLj1JNbmthvXcc6emmErkuXI1oB7Fe+bAXxrodjNhQF/KerZnsL53aPzhjYeQd+cqWsjP0jb/kdyQh/8G4Jxc24028VzyMJr0+UwHQEguDPVDBUgg1VCmncxnDYoaAVZJM5mD/idEBty9g+Q2m8IGJt0H/SMzYidmkF0m8UVlGuL8fck44IuGG4/AQ==;
MSPAuth=2SWsFvYtEG6k*VyvI3RpzLQsBX9MCLto*fqeinnn8*tB0h2k4aZpg3RVwuqznOYkrwvI7Nt5WhbUmRc!jP!IWOO9wNNwseR6nGuEyWsyaqC9hFnU5jVo7xvISiPk0CHArH;
MSPProf=2jXqBY6NQAzxmnVtZm8HVBDY!8ubW6PmTIcRgPWzQj1yAHoxt7VJICQOEXKtU4A7fT9*M42DrCq*VwUdVU2QyFYSbPIDuG1C!sVs0PT!cI4xNo0AgyICd1ZAMGI25V*4TbVATwEBiVX*OcEvpRKdDz75hEvalmjaZluPjYwtTv1yLCNYbB4F9hOA$$;
MSNPPAuth=B00lNX5L7rOnG8IiwCjkcNn3piUilxvIyqSisF6g3sUZWy8Uv*Ax*Dar4Yw2f0bxAyRDZC8VZAwrwBskv29Ebr3wLsi!ysq1856MH3i5EbX4F4sAuw347I9JcPPOp2jgo44vEHgAOih1QM5BVrUgLhqQmm4p3L2ogDZUmTNbHpEiLTigq9!fMA5tiOKp0uZjfRlTTBwWI0JySq5eYLjqZJcOEzfs1adxqZjf1YTtGPlkBY!Cpv4cuUmzNIBcpFwaKLpwBuxDbuCIuZq20qJ2wvEYlnIausAEu6mkXw7j2mjJxa3qleOuWhex*uQAxgsaPBz4OrEPfb8P!GfsVA4DOY92RSGdMJHJDD!9!EqfNYrWrwxSJ1N*dGlwwW6akw*SAwwQ44o1b8BciMWMHzvv4XJfha0*d0fJValQt18Jeah*ZL3Nq3gP!fJMsdlInjIYXADHsuzd6cZmVqYBkpKzNPZMlRZN;
MH=MSFT;
NAP=V=1.8&E=790&C=WeZsW1EOBJSAx8AaN4peWrC47gOFvtZWVGU069nvrAXoeXZPRTX27g&W=1;
ANON=A=208E92978701E5887161FB82FFFFFFFF&E=7ea&W=1


The following error was encountered: 

Invalid Request 
Some aspect of the HTTP Request is invalid. Possible problems: 

Missing or unknown request method 
Missing URL 
Missing HTTP Identifier (HTTP/1.0) 
Request is too large 
Content-Length missing for POST or PUT requests 
Illegal character in hostname; underscores are not allowed 

The squid cache log shows: 

2009/01/20 10:44:33| clientTryParseRequest: FD 28 (192.168.0.102:2596)
Invalid Request
2009/01/20 10:44:33| clientTryParseRequest: FD 21 (192.168.0.102:2627)
Invalid Request
2009/01/20 10:44:33| clientTryParseRequest: FD 54 (192.168.0.102:2597)
Invalid Request
2009/01/20 10:44:34| clientTryParseRequest: FD 13 (192.168.0.149:3032)
Invalid Request
2009/01/20 10:44:34| clientTryParseRequest: FD 51 (192.168.0.102:2608)
Invalid Request

 

 

 

    解决该问题的办法是:

    http_port 80  transparent 加上这个 transparent 

 

 

 

 

        

 

 

 

 

 

 

分享到:
评论

相关推荐

    squid安装配置步骤

    在Linux环境下安装配置Squid,可以按照以下步骤进行: 1. **获取Squid软件包**: 首先,你需要从FTP服务器下载Squid的安装包。在本例中,可以从地址`ftp://168.1.6.23/incoming/bin/`下载名为`squid.tar`的文件。 ...

    linux下squid的安装,配置,卸载及SNMP的安装配置

    在本文中,我们将详细介绍如何在Linux系统中安装、配置、卸载Squid,以及安装和配置SNMP(简单网络管理协议)。 **Squid的卸载** 1. 首先,通过`rpm -qa | grep squid`命令检查Squid是否已安装。如果显示Squid的...

    SQUID 原理分析,安装配置

    本文将详细介绍SQUID的基本原理、安装配置步骤及其在Linux环境下的应用。 **SQUID原理** SQUID的核心功能是作为HTTP代理服务器,它通过缓存互联网上的静态内容(如图片、CSS、JavaScript文件等),减少对原始...

    squid配置https

    2. **编辑 Squid 配置文件** (`squid.conf`): - 启用 HTTPS 代理端口,并指定证书和私钥路径。 ```plaintext https_port 443 cert=/root/http.crt key=/root/http.key ``` - 设置默认站点。 ```plaintext ...

    Linux下Squid安装步骤

    7.Squid.conf 配置实例一个简单的Squid配置示例可能包含允许所有内部IP访问互联网的规则: ```bash acl localnet src 192.168.0.0/16 # RFC1918 - local private network http_access allow localnet ``` 8.Squid....

    Squid离线安装包以及离线安装步骤和配置

    公司项目部署需要在服务器上部署,部署的时候要求离线操作,不能联网,所以不能yum install squid来安装squid 于是从网上下了最新版本的squid离线包,进行离线安装,这是我参照了网上的安装方法,解决了安装中的一些...

    squid编译安装及配置详解.pdf

    Squid 编译安装及配置详解 Squid 是一个流行的开源代理服务器软件,能够缓存常见的 Internet 对象,减少网络带宽的使用,提高用户的访问速度。本资源将指导用户从源代码包编译安装 Squid,并对其进行基本配置。 一...

    squid 配置缓存服务器

    ** squid 配置缓存服务器** Squid 是一个广泛使用的开源 HTTP 代理服务器和缓存系统,它能够显著提高网络访问速度,减轻服务器负载,同时提供内容过滤、访问控制等功能。在本文中,我们将深入探讨如何配置 Squid ...

    squid3.0及配置手册

    配置手册"Squid.3.0配置手册.pdf"包含了Squid所有关键配置选项的详细解释,这对于正确配置和管理Squid至关重要。以下是一些核心配置选项: - **cache_dir**:定义缓存存储的位置和结构,例如`cache_dir ufs /var/...

    Linux+下Squid安装步骤

    1.Net-snmp 获取与安装 2.Net-snmp 的配置 ...2.Squid 获取与安装 3.Squid 配置 4.Squid 测试 5.Squid 常用命令 6.Squid 其他 7.Squid.conf 配置实例 8.Squid.conf 配置说明 9.Squid命中率分析 10.Squid 排错

    Squid 反向代理配置

    在安装前,确保已正确配置好`yum`源,以便能够顺利下载并安装Squid。具体配置方法此处不赘述,如有疑问,可通过搜索引擎或访问技术论坛查找相关教程。 ##### 2. 配置Squid 接下来,需要编辑Squid的主要配置文件`/etc/...

    squid和nginx配置正向代理访问API接口.rar

    在这个场景中,"squid"和"nginx"都是流行的开源软件,它们可以被配置为正向代理来转发请求到API接口。下面我们将深入探讨这两个工具以及如何配置它们。 首先,让我们了解一下 Squid。Squid 是一个高性能的代理缓存...

    Linux Squid 代理修改配置

    二、Squid配置文件 Squid的主要配置文件是 `/etc/squid/squid.conf`。初次安装时,这个文件可能包含大量注释,你可以根据实际需求修改这些配置。 三、修改基本配置 1. **监听端口**:默认情况下,Squid监听3128端口...

    squid配置说明文档

    squid的配置说明 squid:一款在linux下的代理服务器软件 功能相当强大

    squid中文配置指南

    squid中文配置指南 包括配置步骤等信息。不过是介绍在linux和unix上的。

    Squid代理服务器配置

    编译过程中通常包括运行configure脚本以配置安装路径,执行make all进行编译,最后使用make install来安装Squid。安装完成后,Squid的配置文件通常位于/etc/squid/squid.conf,这是管理和定制Squid行为的主要文件。 ...

    Linux下Squid配置指南

    ### Linux下Squid配置指南 #### 概述 本文档旨在详细介绍如何在Linux环境下配置Squid代理服务器。Squid是一款广泛使用的开源代理服务器软件,主要用于缓存和转发HTTP请求,以此来提高网络效率并减少对外部网络的...

Global site tag (gtag.js) - Google Analytics