现在的位置:首页>wordpress>正文

用Nginx反代缓存Google fonts谷歌字体给wordpress加速

2016年07月22日 ⁄ 共 3268字 评论 4 条

在天朝的朋友,相信都知道,Google现在是无法顺利访问的,而使用wordpress的朋友,估计很多人都已经屏蔽掉了谷歌字体,部落之前介绍过wordpress登录后台打开速度很慢的解决方法里就提到这些,如果您是国外的主机,针对的国外的用户,就不要去折腾了,如果是国内的话,部落也推荐大家使用前面文章中介绍的方法,这里只是用来折腾,装逼用的.

和前几天的LNMP下反代Gravatar配置让wordpress头像正常显示原理是一样的.这个需要您的VPS支持访问谷歌,不然的话,就是白搭的了.

用Nginx反代缓存Google fonts谷歌字体给wordpress加速

1.首先您得准备一个稳定可靠国外的VPS.

2.修改nginx.conf配置文件,加入代理缓存功能.

找到nginx.conf所在位置:/usr/local/nginx/conf/

查找#limit_conn_zone $binary_remote_addr zone=perip:10m;,并在前面加入以下内容:

  1. client_body_buffer_size 512k;   
  2. proxy_connect_timeout 5;   
  3. proxy_read_timeout 60;   
  4. proxy_send_timeout 5;   
  5. proxy_buffer_size 16k;   
  6. proxy_buffers 4 64k;   
  7. proxy_busy_buffers_size 128k;   
  8. proxy_temp_file_write_size 128k;   
  9. proxy_temp_path /home/cache/temp;   
  10. #配置临时目录   
  11. proxy_cache_path /home/cache/path levels=1:2 keys_zone=cache:20m inactive=30d max_size=600m;  

#20m是内存占用,30d是30天无访问删除,600m是缓存占具硬盘空间,cache为缓存区名字,如果修改则下文的配置亦要相应修改.

2.创建缓存目录,并赋予权限.

  1. mkdir /home/cache/path -p   
  2. mkdir /home/cache/temp   
  3. chmod 755 -R /home/cache  

3.在vhost下新建下conf文件,复制Nginx代码:

  1. upstream fonts_google {   
  2.     server fonts.googleapis.com:80;   
  3. }   
  4.   
  5. upstream fonts_gstatic {   
  6.     server fonts.gstatic.com:80;   
  7. }   
  8.   
  9. server {   
  10.     listen 80;   
  11.     listen [::]:80;   
  12.   
  13.     server_name fonts.mfbuluo.com; #改为自己的字体库域名   
  14.     access_log /home/wwwlogs/fonts.log access;   
  15.   
  16.   
  17.     location /css {   
  18.         sub_filter 'fonts.gstatic.com' 'fonts.mfbuluo.com';#改为自己的字体库域名   
  19.         sub_filter_once off;   
  20.         sub_filter_types text/css;   
  21.     proxy_cache cache;   
  22.         proxy_cache_valid 200 304 7d;   
  23.         #200 304状态缓存7天,按实际情况修改   
  24.         #其他状态缓存(如502 404)10秒   
  25.         proxy_cache_valid any 10s;   
  26.         proxy_cache_key "$scheme$host$request_uri";   
  27.         #缓存key规则,用于自动清除缓存。   
  28.         proxy_pass_header Server;   
  29.         proxy_set_header Host fonts.googleapis.com;   
  30.         proxy_set_header Accept-Encoding '';   
  31.         proxy_redirect off;   
  32.         proxy_set_header X-Real-IP $remote_addr;   
  33.         proxy_set_header X-Scheme $scheme;   
  34.         proxy_pass http://fonts_google;   
  35.     }   
  36.   
  37.     location / {   
  38.         proxy_cache cache;   
  39.         proxy_cache_valid 200 304 7d;   
  40.         proxy_cache_valid any 10s;   
  41.         proxy_cache_key "$scheme$host$request_uri";   
  42.         proxy_pass_header Server;   
  43.         proxy_set_header Host fonts.gstatic.com;   
  44.         proxy_redirect off;   
  45.         proxy_set_header X-Real-IP $remote_addr;   
  46.         proxy_set_header X-Scheme $scheme;   
  47.         proxy_pass http://fonts_gstatic;   
  48.     }   
  49. }  

sub_filter ‘fonts.gstatic.com’ ‘fonts.miskcoo.com’; 这一行是把返回的所有东西里边的 fonts.gstatic.com 替换成我们自己的域名,要不然你得到了 css 文件,字体内容还是在 google 上面。

然后 sub_filter_once off; 是表示全部替换,proxy_set_header Accept-Encoding ”; 这要求 google 返回不压缩的内容,因为压缩了就没有办法进行替换了。

proxy_set_header 重新定义或添加发往后端服务器的请求头。

proxy_redirect 决定是否替换掉后端返回的 Location 响应头和 Refresh 响应头。

proxy_pass 设置后端服务器的协议和地址,可以使用 URI (统一资源标记符,区别于 URL)

4.在WordPress主题function文件加入以下代码:

  1. //反代替换谷歌字体 from www.mfbuluo.com   
  2. function wp_replace_open_sans() {   
  3. wp_deregister_style('open-sans');   
  4. wp_register_style( 'open-sans', '//fonts.yourdomain.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600' );   
  5. if(is_admin()) wp_enqueue_style( 'open-sans');   
  6. }   
  7. add_action( 'init', 'wp_replace_open_sans' );  

需要解析域名fonts.yourdomain.com,上传Nginx文件,重启nginx.

sudo service nginx restart

小结

文章中的方法来源自网络,由免费部落整理发布.

这个纯粹是折腾,国内的wordpress博客的话,部落建议大家直接禁用谷歌字体.完全没有必要去做这样的反向代理.当然,如果您是用的亚洲的主机,可以去试试.

评论 4 条 评论内容很精采,有内幕,而且绝对有干货

  1. 广东硅谷学院 2016年07月22日 09:35  @回复  Δ-49楼 回复

    #广东硅谷学院#学好IT好就业选硅谷IT,学技能拿文凭事半功倍,紧跟专业教师一起冲浪IT行业。我们有建设学习型专业师资团队,教师领跑学生紧随其后。(QQ:800015777,电话0754-88989555)

  2. 香港云服务器 2016年07月22日 10:06  @回复  Δ-48楼 回复

    用Nginx反代缓存Google fonts谷歌字体给wordpress加速,这样也能加速wordpress,一般加速,都用的是cdn\百度云加速

  3. 茶叶金融 2016年07月25日 16:07  @回复  Δ-47楼 回复

    博主的文章真不错,
    欢迎来我的论坛看看哦

  4. 软膜天花施工图解 2016年07月25日 20:19  @回复  Δ-46楼 回复

    不错的小技巧

给我留言