因为博主的上网环境从来没有断过梯子,所以博客一直用 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)!@(滑稽)
@(滑稽)
突然发现,你头像好涩请啊~
我老婆画的 @(爱心)