![如何重定向/阻止对 Nginx 的 IP 访问](https://linux22.com/image/781357/%E5%A6%82%E4%BD%95%E9%87%8D%E5%AE%9A%E5%90%91%2F%E9%98%BB%E6%AD%A2%E5%AF%B9%20Nginx%20%E7%9A%84%20IP%20%E8%AE%BF%E9%97%AE.png)
我在 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;
}