是这么一回事:code.DragonOS.org的引擎,最近总是被某个爬虫刷我们的流量,导致产生费用。而这个网站不需要爬虫抓取,因此我想到了配置robots.txt来禁止爬虫抓取。但是,这个网站部署在我们实验室的服务器上,是通过frp映射到阿里云的服务器上,并且由服务器上面的nginx反向代理,最终才能被公网访问。
并且,由于这个网站我采用的是官方的docker镜像,不是很方便修改这个镜像里面的文件(更新新的官方镜像之后,自己的修改就会丢失了)。因此想要在nginx上面配置访问/robots.txt时给用户返回的内容。
要禁止爬虫访问,robots.txt的格式只要是这样即可:
User-agent: *
Disallow: /
这样就能禁止那些搜索引擎来访问它了。(大部分的bot都是遵守这个协议的)
要实现上述功能,而不在磁盘上创建这样一个文件的话,可以在nginx的配置文件中,反向代理的配置之前,加入下面这串配置即可:
location =/robots.txt {
default_type text/html;
add_header Content-Type "text/plain; charset=UTF-8";
return 200 "User-Agent: *\nDisallow: /";
}