前言
我们常见的网站架构是: 外部请求到NGINX,NGINX再到后端,让NGINX进行控流以及负责https等。如果我们的后端的源站的robots.txt 跟我们想要的不一样,但是我们无法轻易的对后端进行修改(当后端是封装在一个容器中)的时候,并且我们网站使用我们刚刚上面提到的架构的话,我们便可以在NGINX处,将ROBORS.txt的内容进行重写,从而做到不修改源站,也能将对外的robots.txt改成我们需要的内容。这篇文章就是介绍下如何进行修改
修改方案
我们主要要找到Nginx的当前虚拟主机的配置文件,在原有的转发配置之前,添加下面的配置(一定要在原有的反向代理配置块之前添加,尤其是location ^~ /之前!!!避免覆盖)。
location = /robots.txt {
add_header Content-Type text/plain;
# 使用 return 200 直接返回内容。
# 注意:内容需要放在引号内。换行符使用 \n
return 200 "User-agent: *\nDisallow: /";
}
上面的代码会实现无论源站是否有robos.txt,内容是什么,都会被重写为下面的内容(禁用所有的内容的爬取)
User-agent: *
Disallow: /