• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    squid 的一些常用操作,以及反向代理测试

      in  unix      Tags: 

    一,我用squid基本上用来做反向代理,来缓存图片,html这类的静态程序

    http://localhost:9000/test/222.jpg,图片的确切位置是http://localhost/test/222.jpg,我是用本机的9000端口来代理本机的80端口,不光端口可以改,域名都可以改。

    关于配置文件请看http://blog.51yip.com/server/638.html,这样代理后,我们怎么知道squid是不是真缓存了呢?我们就需要查看squid的日志了。

    二,squid的一些常用操作

    1,查看有多少缓存了,以什么方式缓存的。

    cat access.log |grep TCP_MISS         显示的方式很多,依个人喜好而定


    squid缓存日志

    squid缓存日志

    从上图中可以看出,缓存多少次,以何种方式缓存的,MISS了多少次等。例举几个常见的。

    a),TCP_HIT

    Squid发现请求资源的貌似新鲜的拷贝,并将其立即发送到客户端。

    b),TCP_MISS

    Squid没有请求资源的cache拷贝。

    c),TCP_REFERSH_HIT

    Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器返回304(未修改)响应,指示squid的拷贝仍旧是新鲜的。

    d),TCP_REF_FAIL_HIT

    Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。然而,原始服务器响应失败,或者返回的响应Squid不能理解。在此情形下,squid发送现有cache拷贝(很可能是陈旧的)到客户端。

    e),TCP_REFRESH_MISS

    Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器响应新的内容,指示这个cache拷贝确实是陈旧的。

    f),TCP_IMS_HIT

    客户端发送确认请求,Squid发现更近来的、貌似新鲜的请求资源的拷贝。Squid发送更新的内容到客户端,而不联系原始服务器。

    g),TCP_MEM_HIT

    Squid在内存cache里发现请求资源的有效拷贝,并将其立即发送到客户端。注意这点并非精确的呈现了所有从内存服务的响应。例如,某些cache在内存里,但要求确认的响应,会以TCP_REFRESH_HIT, TCP_REFRESH_MISS等形式记录。

    h),NONE

    无分类的结果用于特定错误,例如无效主机名。

    相应于ICP查询,下列标签可能出现在access.log文件的第四域。

    2,配置文件查错

    /usr/local/squid/sbin/squid -k parse

    说明:配置文件查错,如果有错误,或者警告,它会提示你fatal,或者warning

    3,初始化cache目录

    /usr/local/squid/sbin/squid -z

    说明:启动squid的用户要有配置文件中cache目录的读写权限

    4,前端调试squid

    /usr/local/squid/sbin/squid -N -d1

    说明:cache目录建好后,使用-N选项来保持squid在前台运行,-d1选项在标准错误里显示1级别的调试信息。没出报错,并且看到"Ready to serve requests"消息,表示squid可以了,用ctrl+c停止,或者ctrl+z来终止

    5,后台启动squid

    /usr/local/squid/sbin/squid

    说明:-s选项是squid将重要的状态和警告信息写到syslog,其实我觉得吧,这个-s不要是最好,squid有自己的log了,还要写到syslog里面去干什么。

    6,停止squid

    /usr/local/squid/sbin/squid -k shutdown

    7, 控制日志文件

    /usr/local/squid/sbin/squid -k rotate

    说明:squid对硬件的要求比较高,这也是一方面,squid日志文件很多,如果不对日志文件进行控制最后的结果会导致硬盘被写满。

    8,重新加载配置文件

    /usr/local/squid/sbin/squid -k reconfigure

    说明:当改过东西后,就可以通过他来重新来加载配置。

    9,制作启动脚本

     #!/bin/sh
    # this script starts and stops Squid
    case "$1" in
    start)
              /usr/local/squid/sbin/squid -s
              echo -n ' Squid'
              ;;
    stop)
              /usr/local/squid/sbin/squid -k shutdown
              ;;
    esac

    说明:可以在vi etc/init.d/squid加上上面的东西,就可以自动重起了。

    三,测试过程中遇到的问题

    当我以代理的方式来访问http://localhost:9000/test/222.jpg,我看了一下access.log文件,会出现

    127.0.0.1 - - [13/Jun/2010:19:02:45 +0800] "GET http://localhost:9000/test/222.jpg HTTP/1.1" 304 218 TCP_REFRESH_UNMODIFIED:FIRST_UP_PARENT

    当我很快的涮新时,时间间隔不超过1秒时,他就会全变成

    127.0.0.1 - - [13/Jun/2010:19:02:45 +0800] "GET http://localhost:9000/test/222.jpg HTTP/1.1" 304 215 TCP_IMS_HIT:NONE

    这是为什么,很晕中。难道是说,压力不大,squid当作看不见。我在网上查了一下,也有人根我的这种情况类似,说是因为流览器的原因,在linux下面只能用firefox,没有IE啊,我想squid不会受浏览器的影响。思考中



    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开