我有一个指向我服务器的域名,比如 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>
。
server {
listen 80;
server_name <different_name>;
client_max_body_size 10M;
keepalive_timeout 15;
它按预期正常工作<different_name>
,但它仍然继续响应<example.com>
。我不知道为什么。我希望 nginx 对 完全不响应<example.com>
。
当然我没有忘记重新启动 gunicorn 和 nginx 等服务。
编辑:这可能是一个重复的帖子,正如建议的那样。在我看来,你提到的帖子中问题暴露的方式很混乱。甚至标题都不清楚。“nginx 开放反向代理”这到底是什么意思?我试图用清晰的术语暴露我的问题,它有一个类似的解决方案,同时记住它可以/应该是可重复使用的,并且对每个人都更加明确。
答案1
简而言之:通过删除生产域名,该域的请求不会被阻止,它们将转到默认服务器。
摘自手动的:
Nginx 仅测试请求的标头字段“Host”,以确定应将请求路由到哪个服务器。如果其值与任何服务器名称都不匹配,或者请求根本不包含此标头字段,则 nginx 会将请求路由到默认服务器。除非明确配置了
default_server
默认服务器,否则第一的一。
您可以创建一个最小的默认服务器,它要么返回默认页面,要么返回错误消息,例如:
server {
listen 80 default_server;
server_name _ ;
return 503 "No server is currently configured for the requested host." ;
}