摘要:由于新开了一个wordpress站点,空间又挺小,想找个图床节约空间,而且域名没有备案,七牛与又拍都要备案,贴图库到是方便,可是免费版只有6个月的保存期,几番搜寻,找到了最合适的阿里云oss。

阿里云对象储存oss作为wordpress图床

内容转载至免备案,使用阿里 OSS 作为 WORDPRESS 图床,并支持 HTTPS

1、注册阿里云

这个就不啰嗦了,需要实名制,没有办法的事情。

2、开通 OSS 服务

BucketName 是唯一的,可以按照自己的喜好填写,然后地域我选的是华东,因为离韩国 VPS 比较近,读写权限选 公共读 。

阿里云对象储存oss作为wordpress图床

3、开启防盗链保护

来源填两个网址,一个是博客的域名,一个是专门用来显示图片的域名(后面会讲),可以先填第一个,设置 Refer 不允许为空。

阿里云对象储存oss作为wordpress图床

4、回源设置

这个是 OSS 一个核心的功能,原理是如果 OSS 里没有这个图片,就到指定的地址去 pull 下来,非常实用!

阿里云对象储存oss作为wordpress图床

如果你没有更改过上传路径,前缀就填 wp-content/uploads,回源地址填博客网址,这里就不用再加前缀了。

5、更改 WordPress 设置

打开你的博客管理面板,点 Settings-Media,填写 Full URL path to files:前缀加 https://,中间是 OSS 外网域名,后面加/wp-content/uploads/。

阿里云对象储存oss作为wordpress图床

6、开启图片处理功能

开启后,得到一个图片处理域名,但这个域名是不支持 https 访问的,后面会讲该怎么办。

阿里云对象储存oss作为wordpress图床

7、添加 4 个图片样式

阿里云对象储存oss作为wordpress图床

分别为 medium, large, thumbnail, post-thumbnail,与博客管理面板 Settings-Media 下的设置相对应。

阿里云对象储存oss作为wordpress图床

8、安装阿里云 OSS 插件

Github 地址 在此 ,感谢原作者的分享,插件下载地址 在此 ,为了避免以后找不到了,我也做了个 备份

9、设置阿里云存储

第一个框填入你的 BucketName,就是第二步里设置的那个名字,然后填入你的 API 秘钥,在 这里 找,没有就创建一个。

数据节点地址根据 提示 填,比方上海就是 oss-cn-shanghai.aliyuncs.com。

Save path on OSS,之前设置了一个默认前缀是 wp-content/uploads/,如果你改了上传路径,就填自己的上传路径。

OSS-http-url 填你的 OSS 外网域名,前缀加 https://。

阿里云图片服务器地址,填第三步中提到的第二个图片专用域名。

最后,按照需要,勾选是否在本地保留备份,我是不保留。

10、设置 nginx 反代

由于 OSS 图片处理的域名不支持 https,我又不想备案,所以通过一个迂回的方法解决:用自己的域名,通过 nginx 反代阿里云,从而把 http 转为 https,这样做的缺点是访问速度会有所牺牲。

具体怎么设置 nginx 反代就不啰嗦了,先安装好 nginx 反代理模块,启用 with-http_sub_module,编译过程可以参考 这篇帖子 ,再参考以下设置 vhost:

server {
listen 443 ssl http2;

#ssl on;
ssl_certificate /etc/nginx/xxx.crt;
ssl_certificate_key /etc/nginx/xxx.key;

server_name mstar.top;
access_log /home/wwwlogs/xxx_nginx.log combined;
index index.html index.htm index.jsp index.php;

root /home/wwwroot/xxx;

resolver 8.8.8.8;

location / {
proxy_redirect off;
proxy_pass http://xxxx.img-cn-shanghai.aliyuncs.com/;
proxy_set_header Host xxx.img-cn-shanghai.aliyuncs.com;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Referer https://mstar.top/;
proxy_set_header Accept-Encoding “”;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

subs_filter xxx.img-cn-shanghai.aliyuncs.com mstar.top;
subs_filter_types text/css text/xml text/javascript;

}
}

11、更新图片 URL

UPDATE wp_posts SET post_content = replace(post_content, ‘旧URL’, ‘新URL’);

新 URL 为 OSS 外网域名地址,前缀加 https://。

12、测试

做完这些基本就大功告成了,清空所有缓存,看看首页图片加载是否成功。

正常情况下,图片的地址都会以专用域名开头(第三步中的第二个域名),如果勾选了本地不保留,那么 media 中上传的文件,都会转至 OSS。