让GitHub Pages博客支持百度搜索引擎收录

原文链接:http://tabalt.net/blog/make-b...

GitHub Pages搭建的网站,在百度搜索引擎访问的时候,经常性的会返回 403 forbidden,从而百度会认为网站访问不稳定,对网站降权,甚至K站。

要想解决这个问题,只有买个VPS自己撘一个jekyll解析博客了。但是我的域名没有备案,单纯用国外的VPS,用户访问起来也会有慢的问题,毕竟Github Pages的CDN还是很牛逼的(页面响应时间200ms左右)。那有没有什么办法,让百度爬虫去抓国外VPS上的内容,普通用户直接访问Github Pages呢?

现在科技这么发达,这玩意当然是小Case啦。一般大公司内的域名解析是可以按省、运营商等来做的;大家常用的DNSPOD也支持这么牛逼的功能,免费用户可以 按电信、联通、教育网、百度、搜索引擎等分别设置解析,付费用户可以分省、分国家、分大洲等等。对于我的小博客来说,免费的就非常够用了。

下面是我的折腾过程,记录下来备忘。

安装Jekyll

  • 编译安装Node.js

Jekyll是基于Ruby开发的,用到了Ruby的execjs方法来执行JavaScript代码,而这需要自己指定一个JavaScript runtime;这里我们选择安装Node.js。

sudo yum install libtool automake autoconf gcc-c++ openssl-devel wget

mkdir ~/soft/
cd ~/soft/

wget http://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gz
tar -zxvf node-v0.12.4.tar.gz
cd node-v0.12.4

./configure --prefix=/usr 
make && sudo make install

node -v
npm -v
  • 安装Ruby、RubyGems

sudo yum install ruby ruby-devel gem
  • 使用RubyGems安装Jekyll

gem install jekyll

搭建博客站点

  • 克隆博客代码

sudo yum install git
sudo mkdir -p ~/mydomain.com/

git clone https://github.com/username/username.github.io.git ./
  • 定时更新博客代码

配置crontab 2分钟pull一下代码:

crontab -e 

# 添加下面的代码:
*/2 * * * * cd ~/mydomain.com/; git pull >> /tmp/github_blog_pull_record.log 2>&1;
  • 启动博客站点

Jekyll 2.4 版本之后,会关注文件的变动,自动重新生成静态文件。使用--detach参数指定在后台执行,--port指定端口,--host指定当前机器的外网ip。

cd ~/mydomain.com/
jekyll serve --port 80 --host 192.168.1.101 --detach

绑host 测试,能正常访问则搭建完成。更多Jekyll的用法可以参考文档: http://jekyllrb.com/docs/usage/

  • 使用web服务器Nginx

使用前述方式启动的http服务,会独占这台服务器的 80 端口,如果这台机器还需部署其他的web站点,则不得不使用其他非80的端口。

使用Nginx可以解决这个问题,配置一个Nginx的vhost,可以使用jekyll build --watch &生成博客的静态内容,并将站点根目录设置为 ~/mydomain.com/_site/,这里不做具体介绍了。

配置智能dns

登录DNSPOD,进入域名解析的设置页面,添加一条针对百度的解析:

DNSPOD DNS智能解析设置

后记

以上步骤做完后,再用百度的抓取工具测试,就能正常抓取到内容了。

我做完后第二天,原本剩下的8条收录,立马变成了1条。当然这个是可以理解的,毕竟是突然换了个ip,多发发文章和外链,恢复收录和权重是早晚的事。另外我这个vps在国内访问还是有点慢,首次请求返回要500ms左右,还是得把域名备案了,在国内弄个云主机才行。

打赏作者

原文链接:http://tabalt.net/blog/make-b...


服务端研发
个人博客:[链接] GitHub:[链接]

Server Engineer (Java/Golang/LNMP)

1.3k 声望
64 粉丝
0 条评论
推荐阅读
Pulsar学习笔记之 Authorization授权与Quota配额机制
Pulsar的授权需要开启认证,且需要单独在Broker和Proxy的配置中开启,否则所有认证通过后的用户角色将对所有资源有权限,如未开启认证则所有客户端对所有资源有权限;授权也支持插件化扩展机制,但使用自带的实现...

tabalt阅读 3.1k

各开发语言DNS缓存配置建议
作者:翟贺龙一、背景在计算机领域,涉及性能优化动作时首先应被考虑的原则之一便是使用缓存,合理的数据缓存机制能够带来以下收益:1.缩短数据获取路径,热点数据就近缓存以便后续快速读取,从而明显提升处理效...

京东云开发者3阅读 382

封面图
白嫖GitHub Pages,个人网站搭建步骤详解!
Hexo 是一个快速、简单且功能强大的博客框架。使用 Markdown 解析文档,Hexo 能在几秒内生成带有自定义主题并集成各项功能的网站页面。

LigaAI阅读 442

封面图
博客的调整
我删了很多的旧文章。删去的这些文章中有不少带有复制的成分,也有很多不成熟的、没有营养的内容。长久以来,我虽然积累了很多文章,但是内容质量并不高,感觉也给不了别人多大的帮助,徒劳给互联网增添垃圾。往...

卮客阅读 516

netty系列之: 在netty中使用 tls 协议请求 DNS 服务器
在前面的文章中我们讲过了如何在netty中构造客户端分别使用tcp和udp协议向DNS服务器请求消息。在请求的过程中并没有进行消息的加密,所以这种请求是不安全的。

flydean阅读 385

从零开始学习DNS解析流程
简述这是对萌新的科普内容,尝试通过一个故事的方式通俗地讲解清楚DNS的解析过程,有误的地方欢迎大家指正!PS:纯文本,无图,当小说看就行。内容包含:域名的公网的解析流程域名在主机内部的解析流程(下篇)嫌...

chenwx阅读 370

灵魂拷问,你真的了解DNS吗?
都说程序员是面向Google编程,殊不知当你输入 www.google.com 地址的时候,是否有想过,在回车的一瞬间浏览器如何将请求发送,如何到达目的地为你取得正确的数据。

菜农曰阅读 356

封面图

Server Engineer (Java/Golang/LNMP)

1.3k 声望
64 粉丝
宣传栏