我的登台配置设置如下:
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上的登台服务器。
为什么不限制其配置的子域?
答案 0 :(得分:0)
我之前已经回答了类似的问题
首先让我先简单介绍nginx如何与主机匹配,引用how nginx processes a request
在此配置中,nginx仅测试请求的标头字段 “主机”确定应将请求路由到哪个服务器。如果 它的值与任何服务器名称都不匹配,或者请求不匹配 根本包含此标头字段,然后nginx将请求路由到 此端口的默认服务器。
当您禁用主服务器时,您只剩下1个,因此nginx会将请求传递给它,如果您想避免需要添加主服务器来阻止所有未配置的域
server {
listen 80 default_server;
return 403;
}
然后运行
sudo service nginx reload
然后你就设置了