插件窝 干货文章 Nginx如何实现不允许通过IP访问

Nginx如何实现不允许通过IP访问

server 访问 方法 Nginx 336    来源:    2025-04-23

在Nginx中禁止通过IP地址访问的方法

在Nginx中禁止通过IP地址访问可以防止恶意扫描和未授权的访问,同时确保用户只能通过域名访问您的网站。以下是几种实现方法:

方法一:默认服务器配置(推荐)

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    return 444;  # 444是Nginx特有的状态码,表示关闭连接而不发送响应头
}

方法二:针对特定IP返回错误

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    # 正常配置
}

server {
    listen 80 default_server;
    server_name _;
    return 403;  # 返回403禁止访问
}

方法三:使用SSL证书时(HTTPS)

server {
    listen 443 ssl default_server;
    server_name _;
    ssl_certificate /path/to/dummy.crt;
    ssl_certificate_key /path/to/dummy.key;
    return 444;
}

方法四:同时处理HTTP和HTTPS

# 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;
}

注意事项

  1. 确保你的域名解析已经正确设置
  2. 测试时请确保通过域名可以正常访问
  3. 444状态码是Nginx特有的,表示直接关闭连接而不发送响应头
  4. 对于HTTPS,你需要一个有效的证书(即使是自签名的)

验证方法

配置完成后,可以通过以下方式验证: - 直接访问服务器IP地址,应该无法访问或返回错误 - 通过域名访问,应该可以正常访问

这种配置不仅可以提高安全性,还能避免搜索引擎将你的IP地址和内容关联起来。