不少程序員朋友都有在 GitHub Pages 上搭建本身的我的博客,對於我的博客,沒有被搜索引擎收錄的話,別人基本是是看不到的,再好的技術文沒法被分享也是白搭。程序員
基於 GitHub Pages 的我的博客, Google 收錄很是及時全面。然而,到目前爲止,GitHub 仍是拒絕百度爬蟲的訪問,直接返回 403。緩存
官方給出緣由是,百度爬蟲爬得太狠,影響了 Github Pages 服務的正常使用。這就致使了,但凡在 Github Pages 搭建的我的博客,都沒法被百度收錄。服務器
現有的解決辦法
一、使用 coding.net 創建鏡像網站微信
我以前使用過 coding.net,在本地 repo 的配置文件中同時添加 GitHub 和 coding.net 遠程 repo 地址,發佈時,兩邊都會部署到,加上域名智能解析,對於國內的請求,轉發到 Coding Page 便可。app
可是經過 coding.net 訪問我的主頁時會先出現跳轉頁面,致使百度沒法正確爬取。網站
二、利用 CDNui
這個沒試過,理論上來講,百度在第一次爬取時,CDN 上必需要已經有相應頁面的緩存,不然,爬取的請求會被轉發到 GitHub 源站,GitHub 仍是會拒絕。搜索引擎
三、使用 Nginx 反向代理阿里雲
Nginx 作反向代理,直接代理百度爬蟲,去 GitHub Pages 請求,而後將結果返回給百度爬蟲。spa
這種方式可行,只不過,這些方法都須要必定的定製能力,對於我的開發者,還得買一臺 VPS 或者雲服務器。
可靠、免費還簡單的方法
Guillermo Rauch 大神創業搞了一個靜態站 hosting 服務 zeit.co:
https://zeit.co/
能夠經過 GitHub Hooks 實現自動部署,zeit 提供 存儲 + CDN + DNS 一套完整的服務。
我給我的網站配置完成後,去百度站長試了一下,發現抓取成功了,sitemap 也提交成功了,坐等百度收錄。
下面我把配置的步驟記錄下來,給有須要的朋友一個參考。
zeit 網站主要就三個步驟:
Github 帳戶登錄 zeit.io,授予 zeit repo 的 read 權限;
導入 GitHub 博客 repo;
稍等片刻,部署成功。
項目名中的 .
自動替換成 -
,生成了一個相似於 xxxx.now.sh
的連接,點擊能夠訪問你的博客主頁,這時候靜態資源已經部署到 zeit 的邊緣 CDN 節點上了,下次你 GitHub 項目的任何更新會觸發 zeit 項目更新。
接下來的就是切換域名,經過智能 DNS 將國內流量切過去。經過 zeit.io 提供的 DNS 解析服務配置本身的域名,而後在百度站長裏配置信息。
在 Domains 下爲項目添加你的我的域名。
我添加後出現如下配置錯誤,緣由個人域名權威 dns 是 dnspod。
一種解決方式是將直接使用 zeit 提供的 nameserver 智能 DNS,另外一種方式,就是保留 dnspod 做爲權威 dns 服務器,可是要添加一條 ANAME 記錄。
我使用的是第一種方式,直接在阿里雲替換了 DNS 服務器,直接用 zeit 提供的 nameserver 智能 DNS。
回到 zeit,刷新下,正常是這樣,這裏是給你簽發 https 證書,免費的。
過一下子應該就行了。
看一下 DNS 解析地址,說明 zeit 域名已經配置成功了。
最後就是在百度站長裏面添加我的域名了。這裏注意選擇 https 協議,由於 zeit 默認都是 https 了。
網站驗證我採用的是文件驗證,下載驗證文件放在你博客本地 repo 的 source 目錄下,部署到 GitHub,固然也會及時更新到 zeit。而後完成驗證就行了,試一下連接診斷,看能不能正常抓取,失敗的話,看看抓取的 ip 地址是否是仍是以前的緩存,等待一段時間從新抓取下,時間取決於 dns 的 ttl。
從zeit.co 官網上看,臺灣和香港都有 CDN 節點,免費帳戶能夠有 20G/月,我的博客應該是夠用了。
配置仍是很簡單的,趕忙試試吧,有問題歡迎交流。
個人微信
在看和轉發
也是一種承認
本文分享自微信公衆號 - 賈小昆(zywudev)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。