Nginx 反向代理 Google Fonts 以便国内访问

Ghost 博客系统的默认皮肤使用了 Google Fonts,由于被墙,所以采用了 Nginx 反向代理的方法来让国内访问,fons.99css.com.conf 配置如下:

upstream google {
    server fonts.googleapis.com:80;
}

upstream gstatic {
    server fonts.gstatic.com:80;
}

server {
    listen 80;

    server_name fonts.99css.com;
    valid_referers server_name *.99css.com 99css.com; # 限制引用的域名。如果你想要做公益服务,可以将此行和下方的#if ($invalid_referer) {...}去掉。
    if ($invalid_referer) {
        return 404;
    }

    location /css {
        sub_filter 'fonts.gstatic.com' 'fonts.99css.com';
        sub_filter_once off;
        sub_filter_types text/css;
        proxy_pass_header Server;
        proxy_set_header Host fonts.googleapis.com;
        proxy_set_header Accept-Encoding '';
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://google;

        expires 7d;
        add_header Pragma public;
        access_log off;
    }

    location / {
        proxy_pass_header Server;
        proxy_set_header Host fonts.gstatic.com;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://gstatic;
    }
}

之后头部调用时改为自己的域名即可

<link rel="stylesheet" type="text/css" href="//fonts.99css.com/css?family=Merriweather:300,700,700italic,300italic|Open+Sans:700,400" />

中文字体显示 Bug

刚说完苹果的坏话,报应就来了,刚才这篇文章在 Safari 中不堪入目

Blockquote 中的斜体中文像 SJ 后的丁丁一样,怎么重振雄风呢?

解决方法就是指定页面语言为中文

<html>

改为

<html lang="zh-CN">

在 Ghost 目录中,找到这个文件 /content/themes/casper/defaults.hbs 进行上述修改,之后重启 Ghost 即可,正常显示如下:

参考链接: