目录
什么是Cloudflare以及它是如何工作的?
Cloudflare如何使我的网站更快?
Cloudflare如何保护我的网站?
Cloudflare提供哪些不同的计划?
Cloudflare的图像优化如何工作?
Cloudflare的移动优化如何工作?
如何为我的网站设置Cloudflare?
什么是Cloudflare的“始终在线”功能?
Cloudflare的SSL/TLS加密如何增强网站安全性?
什么是Cloudflare的Argo智能路由?
首页 后端开发 php教程 使您的网站更快,更安全地使用Cloudflare

使您的网站更快,更安全地使用Cloudflare

Feb 08, 2025 am 11:05 AM

Cloudflare:提升网站速度和安全性的全面指南

Cloudflare,源于蜜罐项目(Project Honeypot),是一个提供DDoS检测和防护服务的提供商,它能减轻服务器压力并加快网站速度。它还提供“始终在线”选项,在源服务器出现故障时提供网站的简化版本。

Making Your Website Faster and Safer with Cloudflare

Cloudflare的独特之处在于,它并非一开始就作为加速/性能工具,而是源于旨在提供垃圾邮件和黑客防护服务的蜜罐项目。时至今日,DDoS检测和防护仍然是Cloudflare的主要卖点之一。其算法会记录访问者的IP地址、有效负载、请求资源和请求频率,以检测恶意访问者。

由于Cloudflare位于网站和所有传入流量之间的代理位置,它能够显着减轻服务器的压力,以至于DDoS攻击甚至无法到达原始网站,正如引言中所述。 Cloudflare还提供“始终在线”选项,该选项会缓存用户网站的一个版本,并在源服务器出现故障(原始网站返回5xx或4xx错误)时提供该网站的简化版本。它还具有完整的页面缓存功能。

Making Your Website Faster and Safer with Cloudflare

这些功能具有巨大的优势:它们可以挽救在高负载下苦苦挣扎的Web服务器,并且在服务器发生错误的情况下,可以为开发人员提供喘息的空间来解决问题。

Cloudflare还提供免费服务。当然,也有高级套餐,有些功能(如附加页面规则)需要付费,但仅Cloudflare免费层的范围就足以使其值得学习其优缺点。对比基准测试表明,Cloudflare在速度方面处于中等水平,但很难说它是市场上性价比最高的CDN。

Cloudflare设置

使用Cloudflare设置网站非常简单。在https://www.php.cn/link/6f7bc4baeb295716fa1dbbf64887fcff注册后,我们可以添加一个新网站。当系统扫描给定域的IP和其他详细信息时,我们会看到一个介绍性视频。完成后,我们会得到新的域名服务器,需要在我们的注册商处设置。

Making Your Website Faster and Safer with Cloudflare

我们需要在我们的注册商处注册这些域名服务器,并等待更改在互联网上传播。这可能需要长达24小时。

此更改意味着将我们对域的所有控制权交给Cloudflare。这也意味着,如果我们在该域上拥有电子邮件(MX记录),我们需要将这些记录转移到Cloudflare。如果我们有任何子域,也需要在Cloudflare的仪表板中将其设置为相应的A记录。

所有在我们的域名注册商或托管提供商处设置的现有域名记录都需要移动/复制到Cloudflare。

一些托管服务提供商可能会进一步简化/自动化此转换过程。

Making Your Website Faster and Safer with Cloudflare

对于我们的每个域名记录,我们可以选择简单地让所有流量直接通过我们的服务器——这意味着我们可以为某些子域设置例外——或者我们可以关闭所有Cloudflare功能——例如,当我们在网站上进行一些更改时。

Making Your Website Faster and Safer with Cloudflare

一旦我们设置了域,基本上就是在Cloudflare仪表板之外所需的所有工作。在网站本身或源服务器上无需再执行任何操作。所有进一步的调整都在Cloudflare网站上完成。

加密设置

SSL证书是Cloudflare免费计划的一部分。有四种SSL设置选项,我们可以在仪表板的“加密”选项卡下找到它们。

  • 关闭 – 这不言自明。所有流量都将重定向到不安全的协议(http)。
  • 灵活 – 无论我们服务器的协议是什么,以及我们是否在其上拥有现有的SSL证书,Cloudflare都将通过https向最终访问者提供我们所有的页面。从Cloudflare到源服务器的连接将通过不安全的连接进行。
  • 完全 – Cloudflare将通过https与您的服务器通信,但不会验证源上的证书。从Cloudflare到访问者的流量通过https提供。
  • 完全严格 – Cloudflare将要求源服务器上具有有效的(非自签名)SSL证书。从Cloudflare到访问者的流量通过https提供。

使用这些设置,我们需要确保设置合理,因为我们在最终用户和服务器内容之间有两层,因此这里的遗漏会导致重定向循环,或者过多的重定向最终会减慢网站速度。

Cloudflare还提供购买自定义证书的选项,对于需要额外安全或关心其市场形象的高级用户,它提供了上传自定义/高级证书的选项。这是高级计划的一部分。

网站安全

这是Cloudflare闪光的一个领域:它提供了前所未有的免费价值。在整个托管领域,DDoS防护是一项高级服务,即使对于付费客户也并非总是提供。

Cloudflare在免费层提供无限的DDoS防护,以及其他一些相当复杂的工具,这些工具可以在恶意流量到达之前就在基础设施级别保护网站。它提供速率限制——根据用户定义的、可自定义的规则来限制访问。它提供智能防火墙规则、国家/地区阻止、浏览器完整性检查、验证码保护等等。

如今,当僵尸网络统治互联网,新安装的网站或服务器有时会在上线几分钟内被暴力破解尝试淹没时,当垃圾邮件发送者自动执行Web评论,并且即使没有任何入侵,推荐者垃圾邮件也很猖獗时,利用非常规手段的POST攻击和缓慢攻击并不罕见。这种保护可以成败小型或中型网站。

还有抓取保护,拒绝向某些访问者配置文件提供某些资源,或混淆电子邮件。

高级套餐提供更多选项。

速度和性能

默认情况下,使用Cloudflare,我们可以缓存静态内容——JavaScript、字体、样式表,甚至图像。我们可以设置缓存到期规则。对于各种CMS系统,有一些插件可以连接到Cloudflare,以便我们可以在网站内部清除缓存。

这些静态资源在DNS设置后由Cloudflare的基础设施“接管”,然后根据访问者的位置从其遍布全球的数据中心网络提供服务。

资源可以根据查询字符串或我们的源服务器设置的缓存头进行缓存(或从源获取)。例如,在PHP中,我们可以像这样设置缓存到期:

<code>header('Cache-Control: max-age=3600');</code>
登录后复制
登录后复制

如果这还不够,我们可能需要删除PragmaExpiresCache Control标头:

<code>header_remove('Pragma');
header_remove('Expires');
header_remove('Cache-Control');</code>
登录后复制

我们也可以在服务器级别执行此操作。在nginx中,我们将在虚拟主机块/文件中设置这些规则:

<code>if ($http_cookie ~* "some-cookie") {
    #removing headers that stop Cloudflare cloudflare from caching
    more_clear_headers 'Pragma';
    more_clear_headers 'Expires';
    more_clear_headers 'Cache-Control';
    add_header Cache-Control "no-cache, no-store, max-age=0";
}

location ~* "(!?.*some-url-path.*)" {
    #removing headers that stop Cloudflare cloudflare from caching
    more_clear_headers 'Pragma';
    more_clear_headers 'Expires';
    more_clear_headers 'Cache-Control';
    add_header Cache-Control "max-age=3600";
}</code>
登录后复制

Apache用户会在他们的.htaccess文件中添加类似这样的内容:

<code><ifmodule> mod_headers.c></ifmodule>
Header unset Pragma env=LONGCACHE
Header unset Expires env=LONGCACHE
Header set Cache-Control "max-age=3600" env=LONGCACHE</code>
登录后复制

显然,上面的some-cookiesome-url-path需要替换为正确的数值。这些规则对于下面提到的页面缓存也是必需的。

我们可以选择压缩我们的CSS、JS和HTML。有一个选项可以利用AMP进行传出的AMP链接。还有一个beta功能Rocket Loader,它使用浏览器的本地存储异步捆绑和提供JS。但是,要小心这一点,因为加载资源顺序中的小错误可能会破坏您的网站。

付费客户可以使用Railgun功能,该功能解决了缓存系统的主要痛点——动态内容。它试图加快从源服务器交付动态内容的速度。它需要在源服务器上安装软件,并通过压缩交付的内容和“为多个同时请求维护单个持久连接,消除网络连接延迟”来工作。这让人想起HTTP/2协议的多路复用功能——只是在这里,在源服务器和Cloudflare之间。

Pro计划还有图像压缩/优化,以及波兰语和Mirage机制。在“流量”选项卡下,有跨Cloudflare全球数据中心的Argo路由优化和负载平衡选项。

全页HTML缓存

全页缓存意味着缓存我们系统的全部输出——CMS、应用程序、博客系统或任何其他内容。

在“页面规则”下,有一个隐藏的宝石,可以将您的Cloudflare帐户转换为一个完整的缓存系统,可以与Varnish等专业解决方案竞争——并且由于全球数据中心——可能超过它。

Making Your Website Faster and Safer with Cloudflare

将缓存级别规则设置为缓存所有内容将缓存网站的整个HTML内容以及所有其他资源。

通过对这些规则进行排序,我们可以实现复杂的缓存/排除解决方案,并以最小的延迟交付甚至动态生成的内容。15倍的首次字节时间(TTFB)改进并非闻所未闻。

这些规则支持通配符,需要按优先级排序:

<code>header('Cache-Control: max-age=3600');</code>
登录后复制
登录后复制

如果我们将此规则与下一个图像中的Bypass设置结合使用,我们可以区分需要在不同条件下缓存/从缓存中省略的网站部分——例如管理部分等。

Making Your Website Faster and Safer with Cloudflare

如果页面缓存正在工作,我们应该在浏览器检查器的响应标头中看到CF-Cache-Status: HIT

付费客户有其他缓存选项,或者根据cookie绕过缓存。在这里,cookie名称可以使用通配符设置,内容也可以根据设备类型进行缓存。

这些规则更复杂,并非每种类型的网站都需要。免费客户可以使用三个页面规则,但可以购买额外的规则。

HTTP/2和服务器推送

Making Your Website Faster and Safer with Cloudflare

默认情况下,免费和企业客户都可以使用HTTP/2——对HTTP/1.1协议的重大改进——其中包括:

  • 多路复用 – 多个资源可以在单个连接内以异步方式发送
  • 标头压缩
  • 服务器推送 – 服务器预测对资源的请求,并在浏览器甚至请求它们之前发送它们。

虽然认识到需要根据具体情况来判断Cloudflare的改进和价值,但公平地说,总的来说,Cloudflare提供的价值(特别是其免费层)稳固地高于平均水平。

结论

本文介绍了如何使用和配置Cloudflare与网站,使其快速、可靠且防DDoS。这并不是说CDN网站是不可渗透的。事实上,它带来了新的漏洞。

当人为错误导致Cloudflare服务在2016年瑞典Telia网络提供商案例中受损时,这对欧洲互联网来说是一个重大问题。据估计,全球排名前100万的网站中有6.2%使用Cloudflare服务。

Making Your Website Faster and Safer with Cloudflare

无论如何,我们不应该因为这样的事件而害怕CDN。它们很少见,最终有助于构建一个更加强大的网络。

关于使用Cloudflare使您的网站更快更安全的常见问题解答

什么是Cloudflare以及它是如何工作的?

Cloudflare是一家网络基础设施和网站安全公司,提供内容交付网络服务、DDoS缓解、互联网安全和分布式域名服务器服务。它的工作原理是保护和加速任何在线网站。一旦您的网站成为Cloudflare社区的一部分,其网络流量就会通过其智能全球网络进行路由。它们会自动优化网页的交付,以便您的访问者获得最快的页面加载时间和最佳性能。

Cloudflare如何使我的网站更快?

Cloudflare通过其内容交付网络 (CDN) 增强网站的速度。CDN是位于世界各地的服务器网络,缓存网站的静态内容,例如图像和CSS/JavaScript文件。当用户访问您的网站时,静态内容会从最近的CDN服务器交付,从而减少加载时间。

Cloudflare如何保护我的网站?

Cloudflare保护您的网站免受各种威胁,包括SQL注入、DDoS攻击和跨站点脚本攻击。它使用一系列安全技术,包括Web应用程序防火墙 (WAF)、安全SSL和全球CDN来保护您的网站。

Cloudflare提供哪些不同的计划?

Cloudflare提供一系列计划以满足不同的需求。这些包括免费计划、专业计划、商业计划和企业计划。每个计划都提供不同的功能和支持级别,企业计划提供最全面的功能集。

Cloudflare的图像优化如何工作?

Cloudflare的图像优化功能(称为Polish)会减小图像的文件大小,以提高页面加载时间。它提供两种模式:无损模式,在不更改图像的情况下减小文件大小;有损模式,通过删除一些图像数据来减小文件大小。

Cloudflare的移动优化如何工作?

Cloudflare的移动优化(称为Mirage)旨在提高您的网站在移动设备上的性能。它通过延迟加载图像、合并网络连接以及根据设备提供适当大小的图像来实现此目的。

如何为我的网站设置Cloudflare?

设置Cloudflare包括创建一个Cloudflare帐户,将您的网站添加到帐户,并将域的域名服务器更新为指向Cloudflare。完成此操作后,Cloudflare将开始缓存您的网站并从其CDN提供服务。

什么是Cloudflare的“始终在线”功能?

“始终在线”是一项功能,即使您的源服务器出现故障,它也能使您的网站缓存版本保持在线。这意味着即使您的托管提供商存在问题,访问者仍然可以访问您的网站。

Cloudflare的SSL/TLS加密如何增强网站安全性?

Cloudflare的SSL/TLS加密保护数据在您的网站和访问者之间移动时的安全。这可以防止第三方拦截和读取数据,从而增强网站的安全性。

什么是Cloudflare的Argo智能路由?

Argo智能路由是一项功能,它通过使用Cloudflare的专用网络通过最不拥塞和最可靠的路径路由访问者来提高网站的性能。这可以减少互联网延迟和数据包丢失,从而改善用户体验。

所有图片均保留原始格式和位置。

以上是使您的网站更快,更安全地使用Cloudflare的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

会话如何劫持工作,如何在PHP中减轻它? 会话如何劫持工作,如何在PHP中减轻它? Apr 06, 2025 am 12:02 AM

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。

描述扎实的原则及其如何应用于PHP的开发。 描述扎实的原则及其如何应用于PHP的开发。 Apr 03, 2025 am 12:04 AM

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

在PHPStorm中如何进行CLI模式的调试? 在PHPStorm中如何进行CLI模式的调试? Apr 01, 2025 pm 02:57 PM

在PHPStorm中如何进行CLI模式的调试?在使用PHPStorm进行开发时,有时我们需要在命令行界面(CLI)模式下调试PHP�...

框架安全功能:防止漏洞。 框架安全功能:防止漏洞。 Mar 28, 2025 pm 05:11 PM

文章讨论了框架中的基本安全功能,以防止漏洞,包括输入验证,身份验证和常规更新。

如何在系统重启后自动设置unixsocket的权限? 如何在系统重启后自动设置unixsocket的权限? Mar 31, 2025 pm 11:54 PM

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

PHP 8.1中的枚举(枚举)是什么? PHP 8.1中的枚举(枚举)是什么? Apr 03, 2025 am 12:05 AM

PHP8.1中的枚举功能通过定义命名常量增强了代码的清晰度和类型安全性。1)枚举可以是整数、字符串或对象,提高了代码可读性和类型安全性。2)枚举基于类,支持面向对象特性,如遍历和反射。3)枚举可用于比较和赋值,确保类型安全。4)枚举支持添加方法,实现复杂逻辑。5)严格类型检查和错误处理可避免常见错误。6)枚举减少魔法值,提升可维护性,但需注意性能优化。

See all articles