Nginx 使网站无法通过 IP 访问

Nginx 使网站无法通过 IP 访问

我已将我的网站设置为可通过 example.com 访问。如果可能的话,我希望完全阻止通过其 IP 访问它,或者至少将其 301 重定向到网站。

前者可能吗?如果可能,那么如何实现?

答案1

您必须创建一个默认的 vhost 配置文件并在其他文件之前包含它。

例如,您可以将此默认配置保存到 /etc/nginx/conf/default.conf:

server {
    listen 80 default_server;
    return 444;
}

并将其包含在 nginx.conf 中:

http {
....
 include "/etc/nginx/conf/default.conf";
 include "/etc/nginx/vhosts/*.conf";

}

确保它包含在其他 vhosts 的配置之前。

答案2

您只需在 nginx 配置中添加一个服务器块。

以下代码将向通过 IP 访问您的服务器的用户返回 403 错误:

server {
    listen 80; # IPv4
    listen [::]:80; # IPv6 (if enabled)
    server_name ""; # no domain name
    return 403;
}

相关内容