因为博主的上网环境从来没有断过梯子,所以博客一直用Gravatar原生服务自己访问时并没有感觉到异常,但是偶然的一次梯子维护发现评论区的头像加载极慢,并且高频出现等待xxx响应,后来度娘一下才知道已经墙掉Gravatar了,只能使用V2EX服务来代替,由于V2EX承载了大量的博客访问,所以速度也相对较慢,于是乎干脆反代缓存一波自建Gravatar头像服务吧。(为什么要防盗链?因为不想做公益啊,再者有人用也会变慢的好吧~)
先将Typecho的原生Gravatar服务替换成自建的地址,17.10.24版本以上可以在config.icn.php文件中新增定义常量:
define('__TYPECHO_GRAVATAR_PREFIX__', 'https://gravatar.ai.mr/avatar/');
Nginx全局配置文件(非站点配置文件)
http
{
...
proxy_cache_path /cache levels=1:2 keys_zone=cache_one:100m inactive=30d max_size=50g;
#缓存文件目录,缓存目录结构,缓存使用内存大小,缓存过期时间,缓存最大占用空间
...
include /nginx/*.conf;
#proxy_cache_path需在此配置之前
}
Nginx站点配置文件(非全局配置文件)
server
{
listen 80;
server_name gravatar.ai.mr;
#代理域名
location / {
#主站目录防盗链
valid_referers none blocked ai.mr *.ai.mr;
#允许域名
if ($invalid_referer){
return 404;
#如盗链返回值
}
}
location /avatar/ {
#代理目录防盗链
valid_referers none blocked ai.mr *.ai.mr;
#代理允许域名
if ($invalid_referer){
return 404;
#代理如盗链返回值
}
proxy_pass https://secure.gravatar.com/avatar/;
#被代域名目录
proxy_cache cache_one;
#开启代理缓存
proxy_cache_key $host$uri$is_args$args;
#代理缓存KEY
proxy_cache_valid 200 304 301 302 3650d;
#代理缓存代码及缓存过期时间(这里设置的时间会覆盖全局设置的时间)
}
}
记录至此,再也不用担心加载不出来头像了!~
本站的资源及素材小部分来自互联网,内容若侵犯到了您的权益,请联系我删除,下载资源仅供交流学习所用,请勿用于商业用途,并在下载后的24小时内删除;本站所有未注明转载的文章均为原创,并采用CC BY-NC-SA 4.0授权协议,转载请注明来源,谢谢!
想问一下,你是在宝塔上操作的吗?
只要是Nginx,配置都一样的!
我在全局设置里面保存出错,软件商店- > Nginx 1.15.10 -> 配置修改错误信息:
nginx: [emerg] the size 20971520 of shared memory zone "cache_one" conflicts with already declared size 104857600 in /www/server/nginx/conf/proxy.conf:2
你这个是内存不够吧,缓存区设置小一点!
已经解决了,谢谢了.宝塔不需要这么麻烦,全局不需要动,因为跟站点配置有重复配置...直接在设置里面开反代、缓存、防盗链即可,哈哈
这里的防盗链是全站防盗链,宝塔的貌似只是局部,你换域名试试防盗呢!
果然是,多谢提醒,后来我把宝塔里面防盗链注释掉了,换成你的,问题迎刃而解@(花心)
啊,头(ni)像(lao)好(po)好(zhen)看(bu)啊(cuo)!@(滑稽)
@(滑稽)
突然发现,你头像好涩请啊~
我老婆画的@(爱心)