我有一个域名(例如:example.com),我为此设置了DNS记录:
*.example.com A IP_ADDRESS
example.com A IP_ADDRESS
www.example.com CNAME example.com
这意味着对此域(包括子域)的所有请求都将路由到我的服务器,地址为IP_ADDRESS。
在我的服务器上运行nginx http服务器,服务器设置如下:
server {
server_name demo.example.com;
// Location blocks here
}
我期望的行为是该网站只会在demo.example.com上显示,而转到anything.example.com或只是example.com会导致nginx出错。
但事实并非如此,我实际看到的是,虽然我将server_name专门设置为demo.example.com,但此域的每个子域上的所有请求都将路由到此站点。因此,访问anything.example.com将导致在访问demo.example.com时看到我只想显示的网站。
所以,我怀疑我在这里只是愚蠢而且我错误配置了一些东西,但有人可以告诉我如何得到我期望的东西吗?
答案 0 :(得分:2)
您应该阅读how nginx process request。
您需要定义catch-all服务器块,以便具有demo.example.com
以外的Host头的请求最终在该服务器中。
server {
listen 80 default_server;
return 404;
# or return 444;
}
答案 1 :(得分:0)
你应该添加第二个默认站点,其中servername是default。在那里你可以安装任何错误页面。