禁止特定子域名 - Nginx

禁止特定子域名 - Nginx

我在做如此简单的事情时遇到了困难......

我的服务器上有一个服务,我将其配置为使用已映射 A 记录的特定主机名。但是,当使用浏览器访问此子域时,我希望返回 403 错误。

但这似乎不起作用。我只是按照我以前禁止网络流量直接进入 IP 地址的相同步骤进行操作。

server {
    listen  80;
    server_name     155.155.155.155;
    return  403;
}

这很好用,但是当我这样做

server {
    listen  80;
    server_name     service.mydomain.com;
    return  403;
}

它没有 403。它只是转到 Nginx 测试页面。

对于完成这样的事情,有什么优雅的解决方案吗?

答案1

如果请求service.mydomain.com转到 nginx 站点测试,则必须首先有另一个与服务器名称匹配的虚拟主机,例如 *.mydomain.com 或充当 的虚拟主机default_server。检查您的配置并删除该配置。将您的默认虚拟主机更改为

server {
    listen  80   default_server;
    return  403;
}

这样,不仅对您的 IP 的直接访问会被拒绝,而且对任何未明确设置的虚拟主机的访问也将被拒绝,例如对 *.mydomain.com 或 otherdomain.com 的请求。

相关内容