我已将我的网站设置为可通过 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;
}