仅使用nginx为特定域提供站点服务
我有一个域名(比如:example.com),我为其设置了如下DNS记录:仅使用nginx为特定域提供站点服务,nginx,Nginx,我有一个域名(比如:example.com),我为其设置了如下DNS记录: *.example.com A IP_ADDRESS example.com A IP_ADDRESS www.example.com CNAME example.com server { server_name demo.example.com; // Location blocks here } 这意味着此域(包括子域)的所有请求都将路由到地址为IP\ U的“我的服务器” 在
*.example.com A IP_ADDRESS
example.com A IP_ADDRESS
www.example.com CNAME example.com
server {
server_name demo.example.com;
// Location blocks here
}
这意味着此域(包括子域)的所有请求都将路由到地址为IP\ U的“我的服务器”
在我的服务器上,我有一个正在运行的nginx http服务器,服务器设置如下:
*.example.com A IP_ADDRESS
example.com A IP_ADDRESS
www.example.com CNAME example.com
server {
server_name demo.example.com;
// Location blocks here
}
我所期望的行为是,该站点仅在demo.example.com上显示,而转到anywhere.example.com或example.com将导致nginx给出错误
但事实并非如此,我实际看到的是,虽然我将我的服务器名特别设置为demo.example.com,但该域每个子域上的所有请求都将路由到此站点。所以去anywhere.example.com会看到我只想在去demo.example.com时展示的网站
所以,我怀疑我在这里是愚蠢的,我误解了一些东西,但是有人能告诉我如何得到我想要的吗?你应该读一读
您需要定义catch-all服务器块,以便带有主机头而不是demo.example.com
的请求最终到达该服务器
server {
listen 80 default_server;
return 404;
# or return 444;
}
您应该添加第二个默认站点,默认为servername。您可以在那里安装任何错误页面。是的,仅在发布我在serverfault上实际发现的错误后几分钟。定义一个只返回404错误的服务器块为我修复了它。