运维

运维

Products

当前位置:首页 > 运维 >

如何设置Nginx限制特定IP访问,给网站加把锁?

96SEO 2025-07-29 15:25 13


在网站管理和运营过程中,管束特定IP访问是一种常见的平安措施。Nginx作为一款高大性能的Web服务器,给了许多种管束IP访问的方法。本文将详细介绍怎么设置Nginx管束特定IP访问,为您的网站加把锁。

Ubuntu LNMP中Nginx如何限制访问

方法一:基于IP地址的管束

在Nginx配置文件中,用allowdeny指令能实现对特定IP地址的访问控制。

location / {
    allow 192.168.1.1; # 允许访问的IP地址
    deny all; # 不要其他全部IP地址访问
    ...
}

上述配置表示只允许IP地址为192.168.1.1的访问,其他全部IP地址将被不要。

方法二:基于用户身份的管束

要实现基于用户身份的管束,需要先创建一个密码文件。能用htpasswd工具创建一个包含用户名和加密密码的文件。比方说:

sudo htpasswd -c /etc/nginx/.htpasswd username

然后 在Nginx配置文件中用auth_basicauth_basic_user_file指令来启用基本身份验证:

location / {
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.htpasswd;
    ...
}

方法三:基于客户端证书的管束

要实现基于客户端证书的管束,需要在Nginx配置文件中启用SSL,并要求客户端给有效的证书。比方说:

server {
    listen 443 ssl;
    server_name yourdomain.com;
    ssl_certificate /path/to/your/certificate.pem;
    ssl_certificate_key /path/to/your/private.key;
    ssl_client_certificate /path/to/your/ca.pem;
    ssl_verify_client on;
    ...
}

这将要求客户端给有效的证书,该证书由指定的CA签发。如果客户端没有给证书或证书无效,将无法访问网站。

方法四:基于Referer的管束

要管束访问来源,能用valid_referers指令。比方说 要仅允许来自特定域名的访问,能在server块中添加以下配置:

location / {
    valid_referers none blocked server_names;
    if  {
        return 403;
    }
    ...
}

上述配置表示仅允许来自指定域名的访问,如果求来自其他来源,则返回403状态码。

方法五:基于求频率的管束

要管束某个IP同一时候段的访问次数和求数,能用Nginx的limit_req模块。比方说:

http {
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
    ...
    server {
        location / {
            limit_req zone=mylimit burst=20;
            ...
        }
    }
}

上述配置表示个个IP地址每秒最许多只能有10个求,每10秒内最许多能有20个求。

Nginx给了许多种管束特定IP访问的方法,您能根据实际需求选择合适的方法。通过合理配置Nginx,能为您的网站给更平安、更稳稳当当的运行周围。


标签: ubuntu

提交需求或反馈

Demand feedback