如何重定向/阻止对 Nginx 的 IP 访问

如何重定向/阻止对 Nginx 的 IP 访问

我在 Elastic Load Balancer 后面的一些 EC2 实例上托管了一个网站。可以通过 Load Balancer 的公共 IP 访问该网站。这个公共 IP 经常变化,所以我必须重定向/阻止它。

为了重定向来自任何 AWS 服务的公共 DNS 的任何访问,我使用带通配符的虚拟主机。这工作得很好:

server {
    listen 443;
    server_name *.amazonaws.com;
    ssl_certificate /etc/nginx/ssl/bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/cert.key;
    return 301 https://www.domain.de$request_uri;
}

我已经尝试对 IP 地址进行相同的操作,但无法使其工作。

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

我如何重定向或阻止通过我服务器上的 IP 地址进行的任何访问?

答案1

您需要使用默认虚拟主机来阻止指向任何未定义虚拟主机的访问。

server {
    listen 443 ssl default_server;
    ssl_certificate /path/to/certificate;
    ssl_certificate_key /path/to/key;
    return 444;
}

相关内容