Gravatar是一个全球通用头像服务网站,不少博客程序都接入Gravatar服务,这样无需注册,只需留言时留下邮箱,使用邮箱地址向Gravatar查询便可以获得用户头像

由于众所周知的原因,Gravatar在国内访问速度不佳,经常加载不出头像(404),于是考虑利用Nginx反向代理来代理访问Gravatar,提升头像服务质量

创建一个二级域名作为访问Gravatar的服务域名,这里我自建的二级域名是gravatar.chancel.me,然后创建gravatar的nginx反向代理配置文件如下

# 反向代理缓存配置(路径/tmp/nginx_cache,占用100m内存,有效期30天,最大文件系统占用1g)
proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache_one:100m inactive=30d max_size=1g;

server {
    listen 80;
    server_name gravatar.chancel.me;

    access_log  /var/log/nginx/gravatar.log;
    error_log   /var/log/nginx/gravatar.log;
    
    # 防盗链
    valid_referers none blocked chancel.me *.chancel.me;
    if ($invalid_referer){
        return 404;
    }
    
    location / {
        return 301 https://www.chancel.me;
    }
    
    location /avatar/ {
        proxy_pass https://secure.gravatar.com/avatar/;
        proxy_cache cache_one;
        proxy_cache_key $host$uri$is_args$args;
        proxy_cache_valid 200 304 301 302;
    }
}

http://gravatar.chancel.me/avatar/填入博客程序取代gravatar的链接即可使用

如果不介意的话也可以直接使用我已经搭建好的gravatar镜像,地址:https://gravatar.chancel.me/avatar/