php可以抓取网页数据吗(WordPressWordPress如何利用有限的服务器和网络资源提高WordPress站点的访问速度)
优采云 发布时间: 2022-03-27 19:23php可以抓取网页数据吗(WordPressWordPress如何利用有限的服务器和网络资源提高WordPress站点的访问速度)
介绍
作为占据建站市场 40% 的庞然大物,WordPress 确实可以称得上是时代之作。正是出于这个原因,许多个人网站管理员和企业选择使用 WordPress 来构建自己的网站。在本文文章中,我将简要介绍如何利用有限的服务器和网络资源来提高您的WordPress网站的访问速度。
关于 WordPress
本章将讲解有关 WordPress 的相关知识。
什么是WordPress
WordPress 是一个基于 PHP 和 MySQL 的免费开源博客软件和内容管理系统。WordPress 有一个插件架构和模板系统。截至 2018 年 4 月,前 1000 万的 网站 中有超过 30.6% 的人使用 WordPress。WordPress 是最流行的 网站 内容管理系统。全球 网站 中约有 40% (750,000) 是使用 WordPress 构建的。WordPress 是目前互联网上最流行的博客系统。WordPress 在最著名的网络发布阶段脱颖而出。今天,它在超过 7000 万个网站上使用。
引用自维基百科的材料
有关 WordPress 的更多信息,请访问 WordPress 官方网站:.
为什么使用 WordPress
WordPress 在全球拥有非常好的生态系统,您可以在 Google 和其他网站上轻松获取有关 WordPress 的信息。WordPress 的开发商 AutoMattic 也开放并巩固了其生态系统。
与Typecho等国内众多cms系统相比,WordPress的生态可以说是四面楚歌。
虽然中国的 WordPress 生态可以说是一团糟,但不可否认的是,它仍然在众多cms(内容管理系统)中脱颖而出。
WordPress具有可扩展性高、简单快速、易于开发、易于学习等诸多优点。其函数钩子机制大大提高了开发的便利性。
说明由于WordPress框架还在不断更新中,很多主题和插件也在更新中,所以我们不会在非锁定版的不完整生产环境中使用很多修改内核算法的优化方案本文中的示例。本文仅供参考,最好用于个人博客的建设,即交互少、文章修改少、UGC少的场景。对于*敏*感*词*的SNS、BBS等,本文提到的优化方法大多不适用,甚至速度变慢。如果您需要这方面的优化,您可以联系 AHdark 获得付费支持。因为有读者免费卖淫文章,通过我的文章学习技术后,他们推出了与我原来的服务相冲突的服务或产品,导致我的个人服务和产品受到影响,或者来自我的博客文章。取材却不引用、不宣传,甚至违反CC-BY-NC-SA 3.0 协议,在发这篇博文的时候是令人毛骨悚然和无耻的,所以本文只谈概念,不谈实现,包括提到的个人所写的插件也不会提供。本文不适用于作为 SaaS 服务的 WordPress。优化 WordPress 为什么要优化 所以本文只讲概念,不讲实现,包括个人提到的Plugins写的也不提供。本文不适用于作为 SaaS 服务的 WordPress。优化 WordPress 为什么要优化 所以本文只讲概念,不讲实现,包括个人提到的Plugins写的也不提供。本文不适用于作为 SaaS 服务的 WordPress。优化 WordPress 为什么要优化
首先我们都明确一点,WordPress是一个前后端一体化的服务器端渲染(SSR)框架,使用PHP语言构建。
但是PHP使用的FastCGI并不能达到很好的并发性,因为大部分都是实时编译的。即在同样的配置服务器下,Java或Go Web程序的并发承载能力远高于PHP。
所以我们想尽可能的弥补PHP语言的低效率,毕竟我们很难找到比WordPress更好更强大的cms系统。
如何优化
通常对于网页,我们会使用以下方法
网络架构数据库文件系统
此外,还有一种更高效的优化方法:
用更快的语言重写 网站
显然这是不现实的。
网页架构优化
本段将主要讲解网页的组成和结构的优化方案。
动静分离
在我的 WordPress 中,按 F12 可以看到这种情况。
本来想多放几条的,但是大部分都被原作者搞砸了,这里给个名字来批评一下Tkong Blog
这些站点的Page Sources有一个共同点,就是访问的域名下只有页面文件。
将页面引用的静态文件分离到对象存储或其他公共服务,提高静态文件的加载速度,减轻源站压力。这是一种可以有效提升用户体验的优化方法。
对于未注册的域名,中国大陆的服务器无法使用是很可惜的。通过缓慢的跨境网络加载大量静态文件也会降低用户页面的渲染速度。这种方法在这种情况下也非常有效。
您可以使用 source-global-cdn 插件分离出 WordPress 核心的静态文件,同时加速 Gravatar。
您还可以使用 Source Global CDN for WordPress 服务来加速发布在
前后分离
对于WordPress来说,前后端分离是很不现实的。将页面渲染交给用户,可以减轻服务器压力,但自然会给用户端带来更大的负担。(但通常我们并不关心用户渲染的速度有多慢,只是让他们切换浏览器。)
AlphaPic 使用程序函数将静态 JavaScript/CSS 文件与数据内容分离,通过 Ajax 获取数据并渲染到页面。
网络优化
网络优化的内容这里就不详细讨论了,以后可能会打开文章。(挖个坑)
内容交付网络
CDN通过将资源缓存到边缘节点和二级节点,降低资源返还率,将资源分配到各个节点,从而提高访问速度,减轻源站压力。
你一定听说过西安一马通的两次坠机事件。小程序解压后可以看到,使用的静态文件并不是CDN(Content Delivery Network)提供的,而是直接提供的。在3.50000QPS的流量下,绝对不可能支持单个机房的带宽导出。
使用内容分发网络,不仅可以显着降低源站压力,还可以加快访问速度,那为什么不用呢?
这里有一些建议
这不是我测试过的所有 CDN。其他厂家的一些节点,甚至一些小厂的节点质量更高。
在上述动静分离中,使用对象存储+CDN也可以显着降低成本,提高速度,减轻源站压力。
使用腾讯云COS+腾讯云CDN,可以获得腾讯注册域名,对于没有注册域名的站长来说非常友好。
示例:WordPress博客使用腾讯云对象存储COS进行静态资源CDN加速
动态链接优化
在广告的疯狂下,你一定听说过“全站加速”。
它的本质意义是让回源链接更短、更快。大多数节点使用内部协议来提高响应速度,并使用最优链路接入站点,从而减少动态内容的响应延迟。
我个人推荐阿里云的DCDN和腾讯云CDN的动静态加速模式,自己用的。
数据库查询优化
服务器呈现页面时,通常有 10-20 次数据库查询。
使用 WordFence 将增加到 30 倍以上,同时安全性大大提高。
有些查询不需要每次都更新,所以我们可以使用 Redis 或 Memcached 等内存缓存来缓存它们。显然,数据库查询的速度远低于直接从内存中取数据的速度。
Memcached可以参考这篇文章:WordPress如何启用Memcached内存缓存来提高网站速度
我个人有一个比较精炼的方法,就是同时使用 Redis 和 Memcached 进行缓存,不过是付费服务,所以就不公布了。
站库分离
有时,当您打开 WordPress 博客时,您会发现一个致命错误:无法连接到数据库。然后,打开 Linux 终端并输入 service mysqld status 。
然后我发现MySQL服务被关闭了。
作为服务持续运行的必要条件和基础,不应随意关闭数据库。而你的数据库是这样关闭的,大概率是因为内存溢出。
MySQL数据库可以配置资源占用的大小,但是如果资源太小,响应会很慢,如果资源太大,网页高并发时内存会溢出。那么,在站点并发量大、内存占用大的情况下,如何防止数据库内存溢出呢?
我采取的方案是把站点库分离出来,也就是把数据库移出web服务器。我目前使用的是阿里云RDS数据库和腾讯云TDSQL-C数据库。
这样可以有效降低因内存溢出导致数据库关闭,网站无法正常访问的概率。
PHP优化
最高级的优化PHP的方法就是自己改PHP核心程序,不过这个太难了,就不写了。
操作码缓存
PHP 是一种脚本语言,可以将 php 文件编译成 Opcode 并执行。有些php文件不需要每次都重新读取和编译,所以我们可以缓存编译好的Opcode来消除编译过程所消耗的时间。
例如使用 PHP 扩展:Zend OPCache / APC
总结
综上所述,WordPress优化是一个复杂的过程。这个我亲自研究了很久,才完全看懂了其中的一些内容,而且练习起来更是难上加难。
因此,偷懒或找人帮忙也是不错的选择。
我所知道的不仅限于这个文章。为了防止有人抄袭我的技术,我没有把我所有的WP优化知识都写在文章里,更别说什么实用的操作方法了。
不过,花点小钱找我优化,或者和我相处,为我的优化买单,也可能是个不错的选择(当然这个比较难)。