Nginx子域可在子域上访问,但未配置

时间:2014-01-20 12:49:09

标签: nginx subdomain

我的登台配置设置如下:

server {
listen   80;
server_name staging.domain.com;
root    /var/www/staging/public;

和我的生产配置设置如下:

server {
listen   80;
server_name www.domain.com;
root    /var/www/production/public;

没有其他重定向或任何其他内容。

问题是,即使我禁用了生产配置,我仍然可以访问www.domain.com上的登台服务器。

为什么不限制其配置的子域?

1 个答案:

答案 0 :(得分:0)

我之前已经回答了类似的问题

首先让我先简单介绍nginx如何与主机匹配,引用how nginx processes a request

  

在此配置中,nginx仅测试请求的标头字段   “主机”确定应将请求路由到哪个服务器。如果   它的值与任何服务器名称都不匹配,或者请求不匹配   根本包含此标头字段,然后nginx将请求路由到   此端口的默认服务器。

当您禁用主服务器时,您只剩下1个,因此nginx会将请求传递给它,如果您想避免需要添加主服务器来阻止所有未配置的域

server {
  listen 80 default_server;
  return 403;
}

然后运行

sudo service nginx reload

然后你就设置了