在Nginx中禁止通过IP地址访问可以防止恶意扫描和未授权的访问,同时确保用户只能通过域名访问您的网站。以下是几种实现方法:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 444; # 444是Nginx特有的状态码,表示关闭连接而不发送响应头
}
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
# 正常配置
}
server {
listen 80 default_server;
server_name _;
return 403; # 返回403禁止访问
}
server {
listen 443 ssl default_server;
server_name _;
ssl_certificate /path/to/dummy.crt;
ssl_certificate_key /path/to/dummy.key;
return 444;
}
# HTTP
server {
listen 80 default_server;
server_name _;
return 301 https://yourdomain.com$request_uri;
}
# HTTPS
server {
listen 443 ssl default_server;
server_name _;
ssl_certificate /path/to/dummy.crt;
ssl_certificate_key /path/to/dummy.key;
return 444;
}
配置完成后,可以通过以下方式验证: - 直接访问服务器IP地址,应该无法访问或返回错误 - 通过域名访问,应该可以正常访问
这种配置不仅可以提高安全性,还能避免搜索引擎将你的IP地址和内容关联起来。