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

用DNSPod和Squid打造自己的CDN全程分享

本篇教程是顺应大家的要求而写。教程内大部分都是奶罩在为VeryCD等大型网站构建CDN时所累积的经验。在一些概念方面可能会有一些错漏,希望大家指正
本教程面对的对象是个人站长,所以各方面会力求傻瓜化,让大家都能看懂。当然,前提是需要你要有一颗好学的心,还有坚韧的毅力。
另外一方面,本篇文章基本不会涉及到Windows的内容,整套系统将会是架构在CentOS Linux 5上。别问我为什么不是Windows,因为Windows只能拿一个字形容:烂。不喜欢Linux,或者认为Linux学习起来有困难的朋友,可以到此打住。
可能有人要问,为什么是Linux,而不是FreeBSD?因为FreeBSD不管从系统的优化配置,还是文件系统的性能,都不合适初学者。
先前说过,本篇文章针对的是没有多少技术基础的个人站长,所以文章内会有Linux的安装、基本操作等一些东西教给你,让你学得简单,时间花得有价值。
再罗嗦一下,在接下来的时间内你将要面对一个黑漆漆的,全是英文的屏幕,请做好心理准备。


注意:本篇教程将*不会*涉及到以下内容:

1.动态内容(比如BBS)
2.大文件(比如软件下载站的软件)

第 1 章 CDN和智能DNS
1.什么是CDN
简单来说,CDN就是能让你的网站访问起来更加快的东西。例如网通用户访问了你在网通的CDN服务器上面某个文件,CDN系统就会判断这个文件是否被请求过,如果被请求过,在没有失效的情况下,就会从系统的缓存里面读取这个文件并返回给用户。如果这个文件没有被请求过,那么CDN会自动从你的主服务器上面获取这个文件,然后缓存到CDN系统内,再给用户返回。
看到这里,聪明的朋友就会问:如果网通的CDN服务器,访问我在电信的主服务器速度很慢,那么是不是用户第一次请求这个文件的时候会很慢?嘿嘿,恭喜你,的确是这样。并且,在文件没有完全缓存到CDN上面的时候,所有访问这个文件的用户都会出现错误,比如网页打开不完整,文件下载到一半等。但只要你的网站访问量足够大,这个影响对用户来说是微不足道的。
然后还有朋友会问,为什么商业的CDN不存在这个问题?因为,商业的CDN有自己租用的线路,自己走路由。这就是商业CDN卖得如此之贵的原因。当然,如何走这个路由,搭建这么一个大型的CDN系统,不在本文的讨论范围以内。

2.什么是智能DNS,什么是DNSPod
智能DNS的原理很简单:在用户解析一个域名的时候,判断一下用户的IP,然后跟DNS服务器内部的IP表匹配一下,看看用户是电信还是网通用户,然后给用户返回对应的IP地址。
DNSPod是奶罩同学旗下的网站,提供免费的智能DNS服务。你只需要把你域名的DNS从原来的注册商改为DNSPod,马上就可以享用这个服务了。
注意了:DNSPod只提供域名的智能解析服务,不提供域名也不提供服务器,千万不要以为把你的域名转到DNSPod就能成为双线了。
第 2 章 前期准备

要继续后面的步骤,你必须要准备以下东西:
域名一个
服务器两台,电信网通各一台,一般的P4即可,内存2G以上
空白DVD R+光盘一张(或者CD-R 6张)
DVD刻录机一个(或者CD RW刻录机一个)

然后,你还需要去下载CentOS的ISO镜像
随便在下面的镜像地址挑一个,暂时没有国内的,建议挂一个迅雷慢慢下

http://ftp.ncnu.edu.tw/Linux/CentOS/5.0/isos/i386/
http://ftp.cse.yzu.edu.tw/pub/CentOS/5.0/isos/i386/
http://ftp.cs.pu.edu.tw/Linux/CentOS/5.0/isos/i386/
http://ftp.tcc.edu.tw/Linux/CentOS/5.0/isos/i386/
http://mirror.mirr4u.com/centos/5.0/isos/i386/
http://mirror.tini4u.net/centos/5.0/isos/i386/
http://mirror.averse.net/centos/5.0/isos/i386/

打开上面的网址后,你可以发现类似下面的文件名
CentOS-5.0-i386-bin-1of6.iso

CentOS-5.0-i386-bin-6of6.iso
这些是CD镜像,一共有6个,下载刻盘比较浪费资源,所以我建议下载下面这个DVD镜像
CentOS-5.0-i386-bin-DVD.iso
废话不多说,下载回来后刻盘即可。

之后,为资源做一个安排,所以下面将会做一个假设:
假设域名为naizhao.com
假设两台服务器,电信的服务器为A,网通的服务器为B
假设A服务器为内容服务器,B服务器为CDN服务器,B服务器所有需要的内容均从A服务器取得
假设A服务器的IP是1.1.1.1,B服务器的IP是2.2.2.2

OK,到这里后我们所需要的东西基本准备好了。ISO可能还没有下载好,不急,慢慢挂着,我们先来把域名的DNS设置好

(未完,待续)


推荐阅读
  • 在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统
    本文详细介绍了在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统的步骤。首先,通过“文件”菜单选择“新建虚拟机”并进入自定义设置。接着,在硬盘兼容性选项中选择默认设置。为了更好地进行Linux操作系统的安装练习,建议选择稍后安装操作系统,并在虚拟机安装完成后,根据实际需求删除不必要的硬件组件。此外,本文还提供了详细的配置参数和注意事项,帮助用户顺利完成整个部署过程。 ... [详细]
  • 【Linux】CentOS 7 远程连接指南:高效安全的远程管理方法
    在 CentOS 7 中实现高效且安全的远程管理,本文详细介绍了如何检查和安装配置 OpenSSH。首先,通过 `yum list installed` 命令检查系统是否已安装 OpenSSH,若未安装,则使用 `yum install openssh-server` 进行安装。随后,配置 SSH 服务以确保其安全性和稳定性,包括修改默认端口、禁用 root 登录等关键步骤。此外,还提供了常见问题的解决方案,帮助用户顺利进行远程连接。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 全面解析:Hadoop技术栈中的Linux操作系统概览
    全面解析:Hadoop技术栈中的Linux操作系统概览 ... [详细]
  • 《我的世界》Java版与Windows 10版(基岩版)有何不同?
    《我的世界》Java版与Windows 10版(基岩版)有何不同? ... [详细]
  • 在网络故障排查中,tcpdump 是一款强大的工具,尤其在 Linux 环境下。尽管开发环境中问题较少,但在测试或生产环境中,往往会遇到各种难以预料的异常情况。通过在问题发生的环境中启用 tcpdump 进行抓包,并重现问题,可以获取到宝贵的原始数据,为问题的诊断提供关键线索。本文将详细介绍如何使用 tcpdump 进行实战操作,帮助读者掌握这一技能。 ... [详细]
  • 在 CentOS 6.6 系统中搭建 MONO 和 Jexus 以支持 ASP.NET 及 MVC 应用的运行环境配置指南
    本文提供了在 CentOS 6.6 系统上配置 MONO 和 Jexus 以支持 ASP.NET 及 MVC 应用的详细步骤。首先,确保本机环境为 CentOS 6.6,并使用阿里云的 YUM 源来安装必要的软件包,包括 gcc、gcc-c++、bison、pkgconfig 和 glib2-devel。这些软件包是构建和运行 MONO 环境的基础,确保系统能够顺利支持 ASP.NET 和 MVC 应用的部署和运行。 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 在Linux系统中,为了提高安全性,可以通过设置命令执行超时和用户超时注销来防止因用户长时间未操作而带来的安全隐患。具体而言,可以通过编辑 `/etc/profile` 文件,添加或修改相关参数,确保用户在指定时间内无操作后自动注销。此外,还可以利用 `timeout` 命令来限制特定命令的执行时间,进一步增强系统的稳定性和安全性。 ... [详细]
  • 公司计划部署邮件服务器,考虑到已有域名,决定自行搭建内部邮件服务器。经过综合考量,最终选择在Linux环境中进行搭建,并记录了相关配置和实践过程。本文将详细介绍Postfix的基本设置步骤和实践经验,帮助读者快速掌握邮件服务器的搭建方法。 ... [详细]
  • 大数据应用实例:电视收视率分析企业项目实操第二篇
    本文继续探讨大数据在电视收视率分析中的应用,详细介绍了如何在CentOS系统中进行防火墙管理。针对CentOS 6.5及更早版本,提供了具体的命令操作步骤,包括停止防火墙服务和禁用防火墙启动。此外,还深入讨论了这些操作对数据传输和系统安全的影响,为实际项目实施提供了宝贵的技术参考。 ... [详细]
  • Linux磁盘管理入门指南:MBR分区格式详解与安装步骤
    在 CentOS 7.x 环境下,本文详细介绍了 MBR 分区格式的基本概念及其安装步骤。实验中使用了 SAS 和 SATA 硬盘,其中 SAS 硬盘主要用于企业级应用和服务器,而 SATA 硬盘则广泛应用于个人计算机和低端服务器。文章通过具体操作示例,帮助读者更好地理解和掌握 Linux 磁盘管理的基本技能。 ... [详细]
  • 最近,我在CentOS 5服务器上成功部署了GForge 5.7 Community Edition。与Advanced Server版本相比,虽然功能略有简化,但仍然能够满足大多数开源项目管理的需求。为了确保数据安全,我开发了一套全自动备份脚本,该脚本能够定期备份GForge的数据和配置文件,并将其存储在远程服务器上,以防止数据丢失。此外,该脚本还具备错误检测和日志记录功能,便于故障排查和维护。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
author-avatar
手机用户2502896851
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有