反向代理Gravatar

(特色图片来源于Gravatar主页)

什么是Gravatar

Gravatar是一项可在全球范围内使用的的头像服务。只要你在Gravatar注册并上传照片,你就可以在任何支持Gravatar的站点使用,非常省事。

要想正确地配置,你只需要在管理页面(https://cn.gravatar.com/emails/)将上传的照片与你的邮箱(如没有则需要添加并验证)绑定。先点击邮箱,再点击头像,接着可以看到头像和邮箱,点击确认即可。这样,当你在支持Gravatar的评论区或是其他地方填写邮箱,你的头像一般就会显示出来。

不用担心邮箱泄漏,Gravatar传递邮箱时采用的是MD5散列运算的邮件地址。[1]

什么是反向代理

反向代理在电脑网络中是代理服务器的一种。服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端。[2]

为什么要反向代理Gravatar

为什么要反向代理?从维基百科中的Gravatar条目可以了解到:

从2011年8月起,gravatar.com 被中国大陆部分地区屏蔽,部分中国大陆用户访问博客时头像可能无法正确显示。2014年,网站被解封,页面访问正常。约2014年11月左右,网站再次被中国大陆屏蔽,部分中国大陆用户访问博客时头像无法正确显示。现时已被封锁,方式为DNS污染。[1]

这是因为这样,现在出现了各种镜像源,如loli、v2ex,给我们带来了一定程度上的方便。我们需要这样的服务,那得找办法,而反向代理的其中一个用途正好符合我们的需求(点到为止),所以较常见的镜像方式中有反向代理。

一些Gravatar镜像源链接

公共

Loli

gravatar.loli.net/avatar/

V2EX

cdn.v2ex.com/gravatar/

极客族

sdn.geekzu.org/avatar/

自建

Blog233自建(不稳定)

gra.blog233.com/avatar/

如何自建Gravatar反向代理

我们也可以自己动手反向代理Gravatar,有些其他的用途我就不说了,但大体上就是好玩。如果你摆烂了,不想自己搞而用上面的公共镜像源,下面的不用看了。

下面的以宝塔面板为例,如使用其他的面板请自行类比。如果你习惯了直接使用命令行管理Web服务器以及使用的是Apache而不是Nginx,请自行上网查找相关资料操作。我有时间会更新Apache的反向代理。

我们需要的有:

  • 一台能连得上Gravatar的服务器或家用的主机
  • 域名以及DNS的管理权限
  • 服务器管理面板
  • Nginx

(1 建立站点)

这一步可以跳过,可以直接在已有的网站上配置反向代理,我没有试过、没有经验,不确定是否可行。

在面板中添加站点,输入域名,不用ftp和数据库,php版本选择纯静态。

2 配置反向代理

快捷配置

点击弹窗左侧栏的反向代理,点击添加反向代理

  1. 代理名称自拟
  2. 开启上面的高级功能,代理目录设为/avatar/
  3. 目标URL设为https://www.gravatar.com/avatar/发送域名保持默认,如需要填则设为www.gravatar.com
  4. (可选)开启上面的开启缓存缓存时间自定以提高访问速度
  5. 点击右下角的保存

手动配置

如果需要手动添加整个配置文件,下面的可以作为参考。

无缓存

下面的每个$static_file的file后加了几位随机字符串(应该是为了防止重复),例如$static_fileaAbBcC。建议套用时在$static_file后也添加几位不易重复的字符串。

#PROXY-START/avatar/

location ^~ /avatar/
{
    proxy_pass https://www.gravatar.com/avatar/;
    proxy_set_header Host www.gravatar.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;

    add_header X-Cache $upstream_cache_status;

    #Set Nginx Cache
    
    
    set $static_file 0;
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
            set $static_file 1;
            expires 12h;
        }
    if ( $static_file = 0 )
    {
    add_header Cache-Control no-cache;
    }
}

#PROXY-END/avatar/
有缓存

最后几行的proxy_cache_valid后面的1m是缓存时间,m代表minutes(分钟),你可以自行修改。

#PROXY-START/avatar/

location ^~ /avatar/
{
    proxy_pass https://www.gravatar.com/avatar/;
    proxy_set_header Host www.gravatar.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;

    add_header X-Cache $upstream_cache_status;
        #Set Nginx Cache

    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
        expires 12h;
    }
    proxy_ignore_headers Set-Cookie Cache-Control expires;
    proxy_cache cache_one;
    proxy_cache_key $host$uri$is_args$args;
    proxy_cache_valid 200 304 301 302 1m;
}

#PROXY-END/avatar/

参考

  1. ^abGravatar. Wikipedia. [2021-09-19]
  2. ^反向代理. Wikipedia. [2021-04-16]
本文作者:Wang Jack
本文链接:https://www.blog233.com/archives/828/reverse-proxy-gravatar/
版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇