在WordPress性能优化中,对象存储已成为托管图片、CSS、JavaScript等静态资源的黄金标准。
这种方案能:
-
提升50%以上的页面加载速度
-
降低70%的服务器负载
-
保证99.9%的资源可用性
-
节省高达60%的存储成本
传统方案需要复杂的插件配置和密钥管理,而腾讯云轻量对象存储(Lighthouse版)带来突破性变革——像管理本地磁盘一样简单:
-
直接挂载为服务器本地目录
-
无需插件即可自动同步
-
文件操作与普通磁盘无异
-
保持对象存储的所有优势
前提条件
1、WordPress部署在腾讯云轻量应用服务器(Lighthouse)上。
2、开通轻量对象存储。
3、准备一个CDN用来加速对象存储,例如EdgeOne。
详细操作过程
第一步:创建一个存储空间(Bucket)
进入腾讯云控制台 > 轻量应用服务器 > 对象存储 > 创建存储桶。尚未购买轻量对象存储包的用户可以点这里按活动价购买。
这里需要注意的是所属地域需选择与轻量应用服务器相同地域,例如轻量服务器在广州区域,那么存储桶的地域也应选择广州。
第二步:将存储桶挂载到轻量应用服务器
WordPress的上传目录路径为:站点根目录/wp-content/uploads
,那么存储桶需要挂载的路径也应与之对应。在执行挂载之前,如果该目录下已有文件,需要先备份到它处,然后暂停站点访问功能并删除/wp-content/uploads
目录下所有文件及目录,否则会挂载失败。
选择服务器:选择需要挂载该存储桶的轻量应用服务器。
存储桶挂载目录:这里指的是存储桶中的路径,建议填写/wp-content/uploads
,这样一来存储桶中的静态资源访问路径与 WordPress路径相同,方便后续做URL改写。
服务器挂载目录:这需要填写绝对路径。使用宝塔面板的用户,创建的站点默认路径为:/www/wwwroot
目录下,如果不确定绝对路径,可以在“WordPress后台 > 工具 > 站点健康 > 信息”中查看,如下图:
等待大约1分钟左右,直至显示挂载成功。
挂载成功后,启用站点访问并将备份的/wp-content/uploads
目录下的文件复制回来。
现在所有保存在/wp-content/uploads
目录下的文件已经存储在轻量对象存储中了。
第三步:获取存储桶访问域名
可选择任意存储桶内文件,点击快速分享则可获取到存储桶域名,若无文件也可选择自行拼接,可参考此文档:地域和访问域名
这样一来,对象存储的URL :对象存储访问域名/wp-content/uploads/
与 网站域名/wp-content/uploads/
访问的是相同的路径、相同的目录。
第四步:配置CDN(可选)
使用CDN可以对网站资源进行加速,下面以腾讯云EdgeOne为例。
使用CDN回源LHCOS会产生LHCOS的公网流量,您可根据实际业务规模与轻量对象存储(Lighthouse版)套餐包规格选择是否使用CDN。
- 首先前往访问管理创建子用户,勾选编程访问。
- 授予QcloudCOSDataReadOnly权限。该权限允许只读账号下所有对象存储数据(不含列出对象),若有精细化权限控制需求请使用自定义策略。
- 点击下一步进行审阅,审阅无误后点击完成。
- 妥善保管好生成的密钥(仅会出现1次)。
前往EdgeOne控制台,添加域名。
源站配置选择⌜对象存储源站-S3兼容⌟;勾选私有访问授权后填写子用户的AK、SK即可。
若填写正确则会顺利进入下一步,前往DNS提供商完成解析即可。
若资源变动不频繁,可在站点加速-规则引擎中创建规则,将缓存时间延长,避免产生过多的回源流量。
第五步:改写 /wp-content/uploads
****目录访问URL
方法一:通过插件实现
你可以使用任意的WordPress主流缓存/优化插件。比如 Perfmatters等都支持静态资源的CDN地址改写。
-
优点:方便、可视化管理。
-
缺点:增加插件依赖。
Perfmatters配置示例:
方法二:在WordPress中添加代码
如果你不想装插件,可以直接用过滤器wp_get_attachment_url
、wp_calculate_image_srcset
、content_url
来统一替换:
// 替换附件地址为 CDN 域名
add_filter('wp_get_attachment_url', function ($url) {
return str_replace(home_url('/wp-content/uploads/'), 'https://cdn.zhanzhangb.com/wp-content/uploads/', $url);
});
// 替换文章内容里的媒体地址
add_filter('the_content', function ($content) {
return str_replace(home_url('/wp-content/uploads/'), 'https://cdn.zhanzhangb.com/wp-content/uploads/', $content);
});
// 替换缩略图 srcset
add_filter('wp_calculate_image_srcset', function ($sources) {
foreach ($sourcesas $key => $source) {
$sources[$key]['url'] = str_replace(home_url('/wp-content/uploads/'), 'https://cdn.zhanzhangb.com/wp-content/uploads/', $source['url']);
}
return $sources;
});
// 替换静态资源 URL
add_filter('content_url', function ($url) {
return str_replace(home_url('/wp-content/'), 'https://cdn.zhanzhangb.com/wp-content/', $url);
});
这样无论是文章里的图片、特色图、缩略图、还是直接引用的资源,都会改写成CDN域名(注意将代码中的cdn.zhanzhangb.com替换成自己的CDN加速域名)。
以上代码可以添加到当前主题的functions.php
文件中,也可以使用如 WPCode Pro类似的代码片段插件插入代码。
方法三:Web服务器层面改写
如果你用Nginx/Apache,也可以直接rewrite:
Nginx示例
location ~* ^/wp-content/uploads/(.*)$ {
rewrite ^/wp-content/uploads/(.*)$ https://cdn.zhanzhangb.com/wp-content/uploads/$1 redirect;
}
这种方式是服务端重定向,效果没有PHP过滤优雅(因为会多一次跳转),一般不推荐。
总结
通过腾讯云轻量应用服务器的对象存储功能,WordPress用户可以轻松打造高效、低成本的图床方案。从存储桶挂载、权限设置到CDN加速和URL 改写,本文详细介绍了每一步的操作方法,帮助用户优化网站性能并降低服务器负载。无论是使用插件、代码还是服务器配置,都能灵活实现静态资源托管,让WordPress站点加载更快、运行更稳。
*本文作者:轻友团成员「站长帮」