nginx/swag 并完全忽略未知子域名

nginx/swag 并完全忽略未知子域名

我有一个域名,我们称之为foo.dev

如果有人导航到我所拥有的子域以外的任何位置site-confs,我希望它看起来好像域上根本没有设置任何内容。如果有人访问http://foo.devhttp://www.foo.devhttp://gibberish.foo.dev,或尝试直接访问我的 IP 地址,我希望他们收到未找到错误。https 也是一样。

我发现的每一个搜索结果都说“只需使用 444”。但 444 仍然泄露了那里有服务器的信息;如果我访问http://gibberish.foo.dev,它会说连接重置。如果我关闭服务器并尝试重新访问,它会说找不到该页面。

我已尝试过此操作site-confs/default.conf

server {
    listen       80  default_server;
    server_name _;
    return 444;
}

server {
    listen       443  ssl;
    server_name _;
    return 444;
}

我遇到的另一个问题是,如果我导航到 https 子域(如)https://randomgiberish.foo.dev,它会出于某种原因为我的子域提供网站服务,即使该子域无效!它甚至不会重置连接。

我的site-conf/mysterioussubdomain.foo.dev.conf文件:

# only serve https
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

server {
    listen 443 ssl http2;
    server_name mysterioussubdomain.foo.dev;

    # Hide from search engine crawlers
    add_header X-Robots-Tag "noindex, nofollow, nosnippet, noarchive";

    # make sure ssl is enabled
    include /config/nginx/ssl.conf;

    client_max_body_size 0;
    ssl_session_cache shared:SSL:10m;
    proxy_buffering off;

    location / {
        include /config/nginx/proxy.conf;

        # Set proxy headers
        # proxy_set_header Host $host;
        # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # proxy_set_header X-Forwarded-Proto $scheme;

        # These are important to support WebSockets
        # proxy_set_header Upgrade $http_upgrade;
        # proxy_set_header Connection "Upgrade";

        resolver 127.0.0.11 valid=30s;

        set $upstream_proto http;
        set $upstream_app myapp;
        set $upstream_port 30000;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;
    } 

    location /health-check {
        add_header Content-Type text/plain;
        return 200 "OK\n";
    }
}

编辑:我发现这个帖子表示要添加server_name_in_redirect off;。这部分解决了第二个问题。现在它不再是随机子域导致内容被提供,而是给出无法确认真实性的错误。不过,这实际上与第一个问题相同。

相关内容