摘要:由于新开了一个wordpress站点,空间又挺小,想找个图床节约空间,而且域名没有备案,七牛与又拍都要备案,贴图库到是方便,可是免费版只有6个月的保存期,几番搜寻,找到了最合适的阿里云oss。
内容转载至免备案,使用阿里 OSS 作为 WORDPRESS 图床,并支持 HTTPS
1、注册阿里云
这个就不啰嗦了,需要实名制,没有办法的事情。
2、开通 OSS 服务
BucketName 是唯一的,可以按照自己的喜好填写,然后地域我选的是华东,因为离韩国 VPS 比较近,读写权限选 公共读 。
3、开启防盗链保护
来源填两个网址,一个是博客的域名,一个是专门用来显示图片的域名(后面会讲),可以先填第一个,设置 Refer 不允许为空。
4、回源设置
这个是 OSS 一个核心的功能,原理是如果 OSS 里没有这个图片,就到指定的地址去 pull 下来,非常实用!
如果你没有更改过上传路径,前缀就填 wp-content/uploads,回源地址填博客网址,这里就不用再加前缀了。
5、更改 WordPress 设置
打开你的博客管理面板,点 Settings-Media,填写 Full URL path to files:前缀加 https://,中间是 OSS 外网域名,后面加/wp-content/uploads/。
6、开启图片处理功能
开启后,得到一个图片处理域名,但这个域名是不支持 https 访问的,后面会讲该怎么办。
7、添加 4 个图片样式
分别为 medium, large, thumbnail, post-thumbnail,与博客管理面板 Settings-Media 下的设置相对应。
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。