免备案,使用阿里 OSS 作为 WordPress 图床,并支持 HTTPS

使用体验还不错,基本不花钱,用了 5 天只扣了 1 分钱,就是有点担心会不会有天被 D 然后破产了。

1、注册阿里云

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

2、开通 OSS 服务

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

new-bucket

3、开启防盗链保护

fangdaolian

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

4、回源设置

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

laiyuan

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

5、更改 WordPress 设置

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

yuming

6、开启图片处理功能

tupian

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

7、添加 4 个图片样式

style

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

media-setting

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。

3 thoughts on “免备案,使用阿里 OSS 作为 WordPress 图床,并支持 HTTPS”

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.