次日更新
一夜后,再次进行诊断分析。从返回可以看到,Baiduspider已经成功的爬到设置的nginx服务器,并抓取成功。
百度搜索jtchen blog 反向代理
博客建好后迫切的想增加访问量曝光率,于是想到让百度、谷歌收录自己的博客,很快就在谷歌的站长平台录入成功,之后静静等待其爬虫即可。 在百度搜索资源平台信息录入完后,却发现GitHub是禁止百度爬虫的。考虑到本人博客基本都是中文,因此让百度能索引到是很重要的一件事了。
—-分割线2018-10-22—–
经过一番百度查询,了解到解决方法大致有下面几类:
-
CDN内容分发
该方法是利用CDN提前将博客缓存至各节点,让Baiduspider访问获取这些节点信息而不是直接访问Github。但该方法在CDN节点未缓存时,仍会回源致使爬虫失败。
以前使用过腾讯CDN和阿里云CDN,但对于我这种访问亮极少的博客来说,访问CDN节点时基本都需要回源获取缓存,导致网页访问缓慢。故预估该方法效果差,简单实测也证明了这一点。185.0.0.0经查询是欧盟地址,即爬虫还是回源到Github。
- 镜像网站
该方法思路较简单,即利用自有服务器搭建网站的镜像,让网站爬虫时访问镜像网页。缺点是镜像需要更新,且为避免占用80端口仍需要配置反向代理。 - 反向代理
正向代理是用户通过代理服务器去请求目标服务器服务,反向代理则是对用户透明的,即用户是不知道其存在,当用户需访问服务器A时,其实是在访问反向代理服务器B,并由B请求服务。这里使用上的区别主要在于需不需要用户设置。若设置缓存,则相当于单节点CDN。接下来是我配置的过程
配置Nginx反向代理
首先配置自己域名的DNS
这里有两种方法,一是所有访问博客的请求全部通过反向代理,另一种则是指定百度访问请求才通过反向代理访问。第二种需要你在用的DNS服务商支持,我用的是阿里云DNS,刚好支持。这里指定解析线路为百度,解析记录值填准备使用服务器的ip。
Ubuntu 16.04 下安装 Nginx
我使用的是去年开通的腾讯云VPS,当时120开了一年。一直闲置着,现在终于能利用上了。ubuntu上安装Nginx非常简单
1
2
sudo apt-get update
sudo apt-get install nginx
防火墙设置
查看列表
1
sudo ufw app list
Output
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
- Nginx Full:此配置文件打开端口80(正常,未加密的Web流量)和端口443(TLS / SSL加密流量)
- Nginx HTTP:此配置文件仅打开端口80(正常,未加密的Web流量)
- Nginx HTTPS:此配置文件仅打开端口443(TLS / SSL加密流量)
第二步 键入以下命令来启用此功能:
1
2
#可选单独HTTP或HTTPS,根据需要开启
sudo ufw allow 'Nginx Full'
配置反向代理
编辑配置文件
1
sudo vim /etc/nginx/sites-enabled/default
在最后加入如下代码段
1
2
3
4
5
6
7
8
9
10
11
12
13
14
server{
listen 80;
#替换成自己的域名
server_name www.jtchen.cn;
location / {
#下面替换成自己的github pages主页
proxy_pass https://jtchen.github.io;
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;
}
}
重启Nginx
1
2
sudo systemctl start nginx
sudo systemctl reload nginx
至此大功告成,静待Baiduspider来拜访即可
以上就是我的设置过程,如果有疑问可以在下面评论区提出