翻博客,有时候感觉 Gravatar 头像加载有点慢,想在博客鸡子上搭个反代,网上看教程挺简单的。不过,想想博客现在的 VPS 性能本来就一般般,反代速度也快不到哪里去,作罢。
目前在用官方 https://secure.gravatar.com/avatar/ 源,代码是以前主题自带的,一直在用,囧~
function get_ssl_avatar($avatar) {
$avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2&d=mm" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
return $avatar;
}
add_filter ( 'get_avatar', 'get_ssl_avatar' );
网上看大伙介绍,cn.gravatar.com 在国内速度更好。于是打算换上试试,找到了大发三年前的文章:Gravatar 头像被墙及解决方案,WordPress 4.2 更新了 get_avatar() 函数,增加 srcset 属性——增加了对 retina 屏幕支持。
function get_ssl_avatar($avatar) {
$avatar = str_replace(array("www.gravatar.com", "0.gravatar.com", "1.gravatar.com", "2.gravatar.com"), "cn.gravatar.com", $avatar);
return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');
代码换上,刷新,刷新,刷新……再刷新,还是在用 https://secure.gravatar.com/avatar ……
看 get_avatar 代码,然后在 get_avatar_data 代码中找到了答案:▼展开
if ( $email_hash ) {
$args['found_avatar'] = true;
$gravatar_server = hexdec( $email_hash[0] ) % 3;
} else {
$gravatar_server = rand( 0, 2 );
}
$url_args = array(
's' => $args['size'],
'd' => $args['default'],
'f' => $args['force_default'] ? 'y' : false,
'r' => $args['rating'],
);
if ( is_ssl() ) {
$url = 'https://secure.gravatar.com/avatar/' . $email_hash;
} else {
$url = sprintf( 'http://%d.gravatar.com/avatar/%s', $gravatar_server, $email_hash );
}
$url = add_query_arg(
rawurlencode_deep( array_filter( $url_args ) ),
set_url_scheme( $url, $args['scheme'] )
);
/**
* Filters the avatar URL.
*
* @since 4.2.0
*
* @param string $url The URL of the avatar.
* @param mixed $id_or_email The Gravatar to retrieve. Accepts a user_id, gravatar md5 hash,
* user email, WP_User object, WP_Post object, or WP_Comment object.
* @param array $args Arguments passed to get_avatar_data(), after processing.
*/
$args['url'] = apply_filters( 'get_avatar_url', $url, $id_or_email, $args );
如果博客开启 SSL,头像使用 secure.gravatar.com 源;不开启 SSL,随机使用 0.gravatar.com、1.gravatar.com 以及 2.gravatar.com。开启 SSL 情况下,可以使用下面代码切换到 cn.gravatar.com:
function get_ssl_avatar($avatar) {
$avatar = str_replace(array("www.gravatar.com", "0.gravatar.com", "1.gravatar.com", "2.gravatar.com", "secure.gravatar.com"), "cn.gravatar.com", $avatar);
return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');
不知道是不是心理作用,Gravatar 头像换到 cn.gravatar.com 后感觉是快了一点点。
折腾过程中发现,www.gravatar.com、0.gravatar.com、1.gravatar.com、2.gravatar.com、secure.gravatar.com 和 en.gravatar.com 这些网址无需爱国就能正常访问,速度也不慢,这么说,Gravatar 头像已不再被墙?
本文首发于:Gravatar 头像已不再被墙?-垃圾站
我觉得解禁貌似有一两年了
@老虎 我是后知后觉~
解封好久了吧,现在用cn的节点。
@灵尘子 嗯,我现在也用 cn 的。
赶紧把google和dropbox解禁吧
@从良未遂 Google 有点悬吧……
最近这个https://secure.gravatar.com/有点不稳了,已经换了CN的,实在不行就自己搞一个反代。
@灰常记忆 应该是线路抽风而已……
其实不必那么复杂,可以直接在七牛这样的CDN上镜像gravatar站点,然后用镜像后的链接替代即可,反正自己用不公开流量又不会大到哪儿去,国内速度又快。
@Vans爱好者 目前看已经不墙了,官方 cn 源速度就挺快的。骑牛啥的,需要域名备案了才好使吧?
secure.gravatar.com和cn.gravatar.com感觉速度没什么差别
@zlsin 嗯,速度应该都差不多。有时候 cn.gravatar.com 延迟比 secure.gravatar.com 还高呢。
放弃挣扎吧,多大年纪了,还玩博客
@神父 玩博客多健康,哈哈……
我还以为一直被墙着呢。囧
@Ton 我也以为一直被墙着……
我是有感觉偶尔还是会抽,但大部分时间还是正常的。
@fooleap 偶尔抽风是正常状态吧。
用的v2ex的!
@山野愚人居 现在官方的就挺好……
目前先用secure.gravatar.com
这提交速度。。好快!再来一发!
@郑永 来来来,再来几发……貌似提交速度与评论回复邮件通知有关。secure.gravatar.com 和 cn 有时候 ping 到其实是差不多的 IP,速度也差不多的,除非抽风。
刚改成本地缓存了
@FROYO 改本地缓存不能完美吧?以前试过本地缓存,但是有些地方大尺寸,有些地方小尺寸,就有可能大尺寸的地方显示小尺寸的图片,模糊……
secure的确实不慢,我还以为只是某些地方解禁,看来是全国的。目前还在用v2ex的gravatar cdn,也很快。
@duke v2ex 的据说也会抽风。