nginx有没有全局的location配置,对所有的server都有效?

nginx by Xudong Zhang @ 2016-10-01 11:04:17

比如我的nginx下面配置了www.example.com, test.example.com, zxy.example.com, 我想对它们配置同样的/robots.txt规则,在每个server里面都写一次location /robots.txt肯定可以,但是如果站点很多就比较麻烦了,而且如果想修改的话也很麻烦,有没有全局的配置?


nginx没有这种global的location匹配,只能每个server block里面都写一遍,但是可以把这些公共的location写在一个conf文件里,然后在需要的server block里include这个conf文件就可以了,如

file1 conf/global.location

location = /robots.txt {
  root /var/www/static;
}

file2 conf/www.conf

server {
  listen 80;
  server_name www.example.com;
  ...
  include conf/global.location;
}

file3 conf/zxy.conf

server {
  listen 80;
  server_name zxy.example.com;
  ...
  include conf/global.location;
}
by Xudong Zhang @2016-10-11 23:25:33.34 +0800 CST


我来回答

Markdown格式技巧

  • 行尾添加2个空格或者添加一个空行就能换行
  • 斜体: *hello* 或者 _world_
  • 加粗: **hello** 或者 __world__
  • 代码块: 添加空行,然后代码缩进4个空格
  • 特殊字符: 用\避免转义;\*就是*本身
  • python: `__name__`可以以代码形式输出__name__
  • 一个简单的例子

切换到移动版