温馨提示×

Ubuntu Nginx配置中如何限制访问

小樊
36
2025-12-19 00:45:27
栏目: 智能运维

在Ubuntu中使用Nginx限制访问,可以通过以下几种方法实现:

  1. 限制IP访问

要限制特定IP地址访问您的网站,可以在Nginx配置文件中使用allowdeny指令。编辑网站的Nginx配置文件(通常位于/etc/nginx/sites-available/目录下),然后在server块中添加以下内容:

location / {
    allow 192.168.1.1; # 允许访问的IP地址
    deny all; # 拒绝其他所有IP地址访问
}

保存更改后,运行sudo nginx -t检查配置文件语法是否正确,然后重启Nginx服务:sudo systemctl restart nginx

  1. 限制请求速率

要限制用户对网站的访问速率,可以使用Nginx的limit_req_module模块。首先确保已安装此模块,然后在Nginx配置文件的http块中添加以下内容:

http {
    ...
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
    ...
}

这里,我们创建了一个名为mylimit的存储区域,用于存储IP地址和请求计数。rate=1r/s表示每个IP地址每秒最多允许1个请求。

接下来,在需要限制访问的serverlocation块中添加以下内容:

location / {
    limit_req zone=mylimit burst=5 nodelay;
}

burst=5表示允许短时间内的突发请求,最多5个。nodelay表示不对请求进行延迟处理。

保存更改后,运行sudo nginx -t检查配置文件语法是否正确,然后重启Nginx服务:sudo systemctl restart nginx

  1. 使用基本身份验证限制访问

要使用基本身份验证限制访问,首先需要安装nginx-http-auth-request-module模块。然后,在Nginx配置文件的location块中添加以下内容:

location / {
    auth_request /auth;
    ...
}

location = /auth {
    internal;
    auth_basic "Restricted Area";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

这里,我们创建了一个名为/auth的内部位置,用于处理身份验证请求。auth_basic指令设置了身份验证提示信息,auth_basic_user_file指向存储用户名和密码的文件(需要使用htpasswd工具创建)。

保存更改后,运行sudo nginx -t检查配置文件语法是否正确,然后重启Nginx服务:sudo systemctl restart nginx

这些方法可以帮助您在Ubuntu的Nginx配置中限制访问。您可以根据需要选择合适的方法或组合使用它们。

0