使用 Nginx 反向代理百度爬虫支持 Github Pages 收录

2018-06-22 10:55:19 +08:00
 songxin

使用 Nginx 反向代理百度爬虫支持 Github Pages 收录

最近在学习 Nginx,想到既然 Nginx 可以做反向代理,为嘛不能直接代理百度爬虫,
去向 github pages 请求,然后将结果返回给百度爬虫,这样就能直接让百度收录 github pages 了。
百度爬取 github 给 403 的主要判断依据是 user agent,可以在 Nginx 中直接对 user agent 进行伪造。

试了一下,的确可以。
Nginx 具体配置如下:

server{
         listen 80;
         server_name 3gods.com; #替换成自己的域名
         location / {
             proxy_pass         https://songxin1990.github.io; #替换成自己的 github pages 主页
             proxy_redirect     off;
             proxy_set_header   User-Agent "Mozilla/5.0";
             proxy_set_header   Host                        $host;
             proxy_set_header   X-Real-IP                $remote_addr;
             proxy_set_header   X-Forwarded-For    $proxy_add_x_forwarded_for;
          }
}

但是这种收录方式必须要有台 vps 并装上 Nginx,所以自己写了个小程序, 主要就是接受 form 表单提交的要绑定域名和 github pages 的访问地址,然后后台生成一个 nginx.conf, 再 service nginx reload 一下就可以了。 具体的可以看这篇文章: Github Pages 百度索引收录工具

程序很粗糙,不过大概会有哪些问题,自己都有考虑到,先看看又没人用吧,没人用的东西就没价值,后续也就没有继续优化改造的必要了。
欢迎大家讨论,吐槽。

6488 次点击
所在节点    分享创造
34 条回复
yuluofanchen
2018-06-22 18:18:54 +08:00
@songxin 已经试过了。去年测试 10 个,收录 10 个。
wql
2018-06-22 19:08:25 +08:00
百度之前的幺蛾子事情,应该是 github 屏蔽百度。
swkl86
2018-06-23 07:18:22 +08:00
都用上 vps 了想不通为什么还要用 pages ?
意义在于收录?你确定?用 pages 的人大部分都只是当一个记事本。
真想做收录的肯定上 wp 了,意义何在?
就为了 md 和 git?我只能说,你们真的好有空,加油!
songxin
2018-06-23 07:48:09 +08:00
@swkl86.。。。。
songxin
2018-06-23 07:50:31 +08:00
@swkl86 我建议你先看看我前面的回复。还有,为什么用了 VPS 就不应该用 pages ?有是更好的替代品吗?
至少我觉得用 github 的 pages 或者 issues 来写点博客,记点东西是很方便的。
Dawnki
2018-06-23 15:29:11 +08:00
之前用 hexo 写博客就遇到这个收录问题,找朋友的 vps 试试看
songxin
2018-06-23 16:21:13 +08:00
@Dawnki 嗯,可以试试,不行就直接用我这个,至少目前不出大问题,我的 vps 不会换,linode 的 froment 机房,180ms 左右。
ihancheng
2018-06-23 19:00:22 +08:00
按照你的方法添加了解析,用了空闲的 vps 做了设置。。还是抓去不成功🙃心累
songxin
2018-06-23 20:47:45 +08:00
@ihancheng 可以把你的设置截个图,我有空帮看下,现在有点忙。
msg7086
2018-06-24 04:55:21 +08:00
Google Pages 就是个静态网站托管。
你都有 VPS 了,除非是硬盘容量不够,要不然服务器开个定时任务从 Git 上 Pull 下来启动就好了嘛。
msg7086
2018-06-24 04:55:51 +08:00
↑ 打错了 GitHub Pages。

PS: 我自己用的 GitLab Pages,也挺好用的。
songxin
2018-06-24 08:21:00 +08:00
@msg7086 这样的话我要维护两份数据了。而且有图片占容量较大。
codehz
2018-06-25 10:30:00 +08:00
@songxin #32 图片不建议通过 github pages 来部署,首先,这玩意有流量上限。。。其次速度和专业的图床(即使是免费的)相比没有任何优势。

另外 git pull 可以完全自动化实现(通过设置 webhook ),所以维护的问题也是不存在
songxin
2018-06-25 19:01:53 +08:00
@codehz 图片之前放七牛的,后面被恶意刷了几千 G 流量。
webhook 简单看了下,就是进行一个 Git 操作后触发相应的通知机制,请求一个指定的 url。
但是这样的话你又需要一个东西来接收处理这个 webhook 请求。

另外,基于服务考虑,比如你这个工具后续要给成千上万的人使用,nginx 和 webhook 哪种方式更简单?
基于资源考虑,也不太可能将每个人的仓库都做一个镜像。

当然你自己的机器,怎么玩都可以,但是并不是每个人都有自己的机器。
此贴就此略过了,以后不在回复。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/464957

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX