热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

用DNSPod和Squid打造自己的CDN(八)测试并运行SQUID

想要测试SQUID是否正常,必须要先把www.naizhao.com这个域名解析到2.2.2.2这个IP上。跟上一章一样,如果你是网通用户就不需要做任何操作,DNSPod会给你返回2.2.2.2这个IP
第 8 章 测试并运行SQUID

  1.前期准备

  想要测试SQUID是否正常,必须要先把www.naizhao.com这个域名解析到2.2.2.2这个IP上。跟上一章一样,如果你是网通用户就不需要做任何操作,DNSPod会给你返回2.2.2.2这个IP。如果你是电信用户,或者解析出来的IP不是2.2.2.2,那么就要修改系统的hosts表,对应记录添加进去。跟上一章不一样,上一章修改的是SQUID服务器的hosts表,你现在需要修改的是你用来测试SQUID的系统的hosts表。

  除了修改hosts表外,我们还需要一个名为curl的小工具。一般的Linux/Unix系统都附带了这个工具,如果使用Windows,那么需要到下面的地址下载一个,并且放到D:(或者其他地方,自己喜欢)。

  http://curl.haxx.se/latest.cgi?curl=win32-nossl(32位系统)

  http://curl.haxx.se/latest.cgi?curl=win64-nossl(64位系统)

  下载回来解压后,我们只需要一个curl.exe。

  2.运行SQUID

  我们继续用上一章的方法,用调试方式启动SQUID

  cd /usr/local/SQUID/sbin

  ./SQUID -Nd 1

  然后打开浏览器,输入http://www.naizhao.com,看输出的网页是否正确。

  如果能显示出正常的页面,那么说明SQUID已经正常运行了。但我们还需要确认一下,所需要的页面是否已经被SQUID缓存了。

  3.测试SQUID

  我们使用curl,输入下面的命令(Windows用户请使用命令行来运行curl)

  curl -I http://www.naizhao.com/

  HTTP/1.0 200 OK

  Date: Sun, 08 Jul 2007 12:16:27 GMT

  Server: NaiZhao Web Server/1.0.0

  Last-Modified: Wed, 13 Dec 2006 06:11:14 GMT

  ETag: "7665b-1983-4417e480"

  Accept-Ranges: bytes

  Content-Length: 6531

  Vary: Accept-Encoding

  Content-Type: text/css

  Age: 29155

  X-Cache: MISS from cnc.naizhao.com

  Via: 1.0 cnc.naizhao.com:80 (SQUID/2.6.STABLE13)

  Connection: close

  我们留意输出的内容,下面一行内容表示并没有命中缓存。也就是并不是从缓存中读取所需文件。一般第一次访问一个文件的时候,出现MISS是正常的,因为本来文件就不存在于缓存中。

  X-Cache: MISS from cnc.naizhao.com

  然后,我们重新运行一次命令,继续看输出的内容

  curl -I http://www.naizhao.com/

  HTTP/1.0 200 OK

  Date: Sun, 08 Jul 2007 12:16:27 GMT

  Server: NaiZhao Web Server/1.0.0

  Last-Modified: Wed, 13 Dec 2006 06:11:14 GMT

  ETag: "7665b-1983-4417e480"

  Accept-Ranges: bytes

  Content-Length: 6531

  Vary: Accept-Encoding

  Content-Type: text/css

  Age: 29155

  X-Cache: HIT from cnc.naizhao.com

  Via: 1.0 cnc.naizhao.com:80 (SQUID/2.6.STABLE13)

  Connection: close

  可以看到,这次的输出已经是HIT了。也就是表示,内容是从缓存中读取的。

  如果第二次访问仍然是MISS,那么你就要检查下网页是否限制了缓存。可以从下面几个方面入手:

  Last-Modified: Wed, 13 Dec 2006 06:11:14 GMT 检查这行是否每次访问都变化。如果一直变化,说明页面是动态的,并不合适SQUID缓存。SQUID在每次请求的时候都会检查这行,判断页面是否已经过期,并且对过期的页面重新获取。

  Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 这行是负责控制缓存。no-store、no-cache、must-revalidate等都是要求SQUID禁止缓存内容,并且在每次请求的时候都去验证页面是否过期。

  Expires: Thu, 19 Nov 1981 08:52:00 GMT 过期时间如果大于当前时间,也会被认为是页面已经过期,需要重新获取。这样的页面也不会被缓存。

  Pragma: no-cache 这句也是禁止缓存。

  大家可以按照上面的内容进行自查自纠,根据实际需求对网站进行修改即可。

  确认没有问题后,我们就可以让SQUID正式跑起来了。

  4.正式运行SQUID

  ulimit -Hs 65536

  ulimit -n 65536

  ./SQUID

  直接使用上面的命令就可以让SQUID跑起来了。

  跑起来后,输入http://www.naizhao.com看看访问是否正常。

  5.让SQUID跟随系统启动

  CentOS让SQUID跟随系统启动很简单,只需要编辑/etc/rc.local,在最后加上下面内容即可

  ulimit -Hs 65536

  ulimit -n 65536

  /usr/local/SQUID/sbin/SQUID


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 本周信息安全小组主要进行了CTF竞赛相关技能的学习,包括HTML和CSS的基础知识、逆向工程的初步探索以及整数溢出漏洞的学习。此外,还掌握了Linux命令行操作及互联网工作原理的基本概念。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 本文介绍如何在应用程序中使用文本输入框创建密码输入框,并通过设置掩码来隐藏用户输入的内容。我们将详细解释代码实现,并提供专业的补充说明。 ... [详细]
author-avatar
该过自我故事_191
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有