Github Pages的问题

我的博客使用的是Github Pages服务, 并且使用了自定义的域名, 已经有一段时间了, 如今遇到以下问题

  1. 百度爬虫无法访问
  2. 自定义域名不支持https
  3. 手机访问有点慢
  4. 微信访问提示不安全

尤其是第4点, 我不能接受, 因此我又折腾了一翻, 查找资料并动手实践, 看看有没解决办法

百度爬虫被禁

可以用以下命令测试

1
curl -A "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" https://github.com

百度爬虫被禁的结果就是, 百度一下是无法搜索到你的博客内容的

但话说回来, 想让百度搜索到还真不容易, 以博文这些年,我们知道的那些pages平台为例(该博客是托管在Gitlab上的, 百度爬虫是可以访问的), 百度与谷歌的搜索结果如下:

百度的搜索结果, 首页里没有原博文, 有的只是二手内容(以推酷为例, 它里面的文章其实是爬虫去别人的网站抓取的)
百度搜索结果

谷歌的搜索结果, 第一条就是
谷歌搜索结果

所以说, 就算百度爬虫不被禁, 想让自己的博客被直接搜索到也并非易事, 就先不纠结了

自定义域名不支持https

Github官方文档指出

You can enforce HTTPS to add a layer of encryption for traffic to your GitHub Pages site if it has a github.io domain.
With HTTPS enforcement enabled, HTTP requests to your GitHub Pages site will be transparently redirected to HTTPS.

我的GitHub Pages域名为levy9527.github.io, Github支持使用https协议, 就算使用http访问, 也会自动变成https协议

HTTPS is not supported for GitHub Pages using custom domains.

但是, 如果我使用自定义的域名:levy.ren, 那就只能使用http协议了

另外, Coding Pages 据说支持https, 但实际上如果使用https协议去访问:

您的链接不是秘密链接

会提示不是私密链接, 不知情的吃瓜群众肯定会吓一跳, 以为这是个不可描述的网站, 还不如Github Pages

真正支持https的, 目前我知道的是Gitlab

手机访问有点慢

没有缓存的情况下, 手机访问一般都要超过5秒. 以下是ping的结果:

  • Baidu 作为参考标准

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    PING www.baidu.com (183.232.231.173): 56 data bytes
    64 bytes from 183.232.231.173: icmp_seq=0 ttl=57 time=8.017 ms
    64 bytes from 183.232.231.173: icmp_seq=1 ttl=57 time=18.729 ms
    64 bytes from 183.232.231.173: icmp_seq=2 ttl=57 time=8.605 ms
    64 bytes from 183.232.231.173: icmp_seq=3 ttl=57 time=18.766 ms
    64 bytes from 183.232.231.173: icmp_seq=4 ttl=57 time=14.039 ms
    64 bytes from 183.232.231.173: icmp_seq=5 ttl=57 time=9.764 ms
    ^C
    --- www.baidu.com ping statistics ---
    6 packets transmitted, 6 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 8.017/12.987/18.766/4.505 ms
  • Github 的确有点慢

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    PING levy9527.github.io (151.101.100.133): 56 data bytes
    64 bytes from 151.101.100.133: icmp_seq=0 ttl=54 time=49.669 ms
    64 bytes from 151.101.100.133: icmp_seq=1 ttl=54 time=45.325 ms
    64 bytes from 151.101.100.133: icmp_seq=2 ttl=52 time=47.119 ms
    64 bytes from 151.101.100.133: icmp_seq=3 ttl=54 time=58.865 ms
    64 bytes from 151.101.100.133: icmp_seq=4 ttl=52 time=45.123 ms
    64 bytes from 151.101.100.133: icmp_seq=5 ttl=52 time=47.915 ms
    ^C
    --- levy9527.github.io ping statistics ---
    6 packets transmitted, 6 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 45.123/49.003/58.865/4.673 ms
  • Coding 比Github快很多

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    PING levy9527.coding.me (45.249.246.131): 56 data bytes
    64 bytes from 45.249.246.131: icmp_seq=0 ttl=48 time=26.340 ms
    64 bytes from 45.249.246.131: icmp_seq=1 ttl=48 time=15.934 ms
    64 bytes from 45.249.246.131: icmp_seq=2 ttl=50 time=16.471 ms
    64 bytes from 45.249.246.131: icmp_seq=3 ttl=50 time=15.098 ms
    64 bytes from 45.249.246.131: icmp_seq=4 ttl=48 time=20.288 ms
    64 bytes from 45.249.246.131: icmp_seq=5 ttl=50 time=24.285 ms
    ^C
    --- levy9527.coding.me ping statistics ---
    6 packets transmitted, 6 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 15.098/19.736/26.340/4.306 ms
  • Gitlab 一直没有ping通过

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    PING levy9527.gitlab.io (104.208.235.32): 56 data bytes
    Request timeout for icmp_seq 0
    Request timeout for icmp_seq 1
    Request timeout for icmp_seq 2
    Request timeout for icmp_seq 3
    Request timeout for icmp_seq 4
    Request timeout for icmp_seq 5
    ^C
    --- levy9527.gitlab.io ping statistics ---
    7 packets transmitted, 0 packets received, 100.0% packet loss

从ping的结果来看, 似乎Coding比较优秀, Gitlab根本不值一提, 其实不然.

首先, ping不通不代表访问不了, 再有就是在PC端访问这些Pages平台其实无太大差异, 关键还是得看移动端的表现, 这点下面会讲

微信访问提示不安全

  • Github

访问自定义域名地址会出现提示

微信访问Github自定义域名地址

但如果直接访问 https://levy9527.github.io 就没问题

我猜测微信检测到网页使用的是外国的ip, 且使用http就会这样, 因此我想到的解决办法是为博客链接添加https

  • Coding

在微信里访问http://levy9527.coding.me/levy9527/ 将得到大大的惊喜

微信访问Coding Pages原地址

访问原地址都不行, 还是直接被禁的那种. 所以说, 就算Coding的ping值令人满意, 我也不会考虑它的

  • Gitlab

直接访问 https://levy9527.gitlab.io 没问题, 换成自定义域名 http://levy.ren 就提示是否继续访问, 表现得跟Github一样

但Gitlab是支持自定义域名https的, 我想, 把博客迁移到Gitlab, 再申请个https, 问题就解决了吧…

令人震惊的真相

本文到这里应该是要结束了. 但期间我上了个厕所, 脑子里突然灵光一现, 想起了一件事.

我有不止一个域名, 我也曾为域名申请过腾讯企业邮. 其中levy.ren不支持, levy.work支持. 那么, 微信里的访问提示是否跟域名有关呢?

我试了一下, 果然如此. 我使用http://levy.work 在微信里访问, 根本没问题好吗!😱

如果说换个域名就能解决微信提示不安全的问题, 那其实https也没啥必要了, 那我根本不用迁移博客啦😓

参考资料

Fork me on GitHub