NGINX多个server_name,但每个server_name都有robots.txt文件?

时间:2016-10-13 07:45:14

标签: nginx robots.txt server-name

我必须创建一个server_name作为我的CDN来源拉取的监听器。

CDN希望从origin.mydomain.com

获取

我已经在www.mydomain.com上有100行代码,展示了所有重写,规则等,我需要再次使用所有这些代码。

我的简单解决方案是

server_name www.mydomain.com origin.mydomain.com

轻松让NGINX监听对“origin”子域的请求。

我担心谷歌会发现子域并开始抓取它。我想以某种方式阻止谷歌从“起源”子域名。由于声明了多个server_name,我不确定我可以将robots.txt文件放在某个地方,因为使用相同的根文件夹作为实时网站。

有一种简单的方法吗?

所有反馈都表示赞赏。

干杯 莱恩

1 个答案:

答案 0 :(得分:0)

使用两个server块并使用include指令引入公共代码。例如:

server {
    server_name www.mydomain.com;
    include /path/to/common/config;

    location = /robots.txt {
        root /path/to/friendly/dir;
    }
}
server {
    server_name origin.mydomain.com;
    include /path/to/common/config;

    location = /robots.txt {
        root /path/to/unfriendly/dir;
    }
}

因此,您在不同目录中有两个robot.txt个文件 - 或者使用rewrite ... last将URI映射到不同的本地文件。