nginx.conf中的server_name似乎被忽略

我有一个域名,让我们说example.com指向我的服务器。 而我的nginx.conf是:

upstream domain { server 127.0.0.1:8002; } server { listen 80; server_name <example.com>; client_max_body_size 10M; keepalive_timeout 15; 

在开发过程中,我想停用example.com。 我用<different_name>replace它。

 server { listen 80; server_name <different_name>; client_max_body_size 10M; keepalive_timeout 15; 

它正常工作正常与<different_name>但它仍然继续响应<example.com> 。 我不明白为什么。 我希望nginx在<example.com>上完全不回应。

当然,我不会忘记像gunicorn和nginx那样重启服务。

编辑:它可能是一个重复的职位,build议。 在我看来,这个问题暴露在你提到的职位是困惑的。 即使标题不明确。 “nginx开启反向代理”是什么意思呢? 我试图用明确的术语来揭露我的问题,这个问题有一个类似的解决scheme,记住它可以/应该是可重用的,并且对每个人都更加明确。

简而言之:通过删除该域的生产域名请求不被阻止,它们将转到默认服务器。

从手册中解释 :

Nginx只testing请求的头部字段“主机”,以确定请求路由到哪个服务器。 如果它的值与任何服务器名称不匹配,或者请求中根本不包含这个头域,那么nginx会将请求路由到默认服务器。 除非明确configuration了default_server ,否则默认服务器是一个。

您可以创build一个最小的默认服务器,返回一个默认页面或错误消息,例如:

 server { listen 80 default_server; server_name _ ; return 503 "No server is currently configured for the requested host." }