有时候,我们需要给Nginx加点“门禁”——限制访问。这里有几个常见的招数,咱们一个一个来看。

如何用nginx配置限制访问

先从频率限制说起。说白了,就是控制每个IP的请求速度,防止有人恶意刷接口。Nginx里用两个指令搞定:limit_req_zone 定义规则,limit_req 应用规则。举个例子,限制每个IP每秒只能发1个请求:

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

    server {
        location / {
            limit_req zone=mylimit burst=5;
            ...
        }
    }
}

这里的关键点:rate=1r/s 就是每秒1个请求,burst=5 允许短时间内的突发流量——相当于允许排队,最多5个请求同时等待处理。这在应对瞬时高峰时很实用。

另一个常见需求是限制来源,比如只允许公司内网访问后台。这时候 allowdeny 就派上用场了:

server {
    location / {
        allow 192.168.1.1;
        deny all;
        ...
    }
}

规则很简单:先放行特定IP,再拒绝所有其他来源。注意顺序——allow 在前,deny 在后,否则就成了“一刀切”。

如果需要更严格的保护,比如管理后台的登录页面,可以使用基本身份验证。步骤分两步:先创建密码文件,再配置Nginx。用 htpasswd 工具生成密码:

htpasswd -c /etc/nginx/.htpasswd username

输入密码后,文件就创建好了。然后在配置里加上:

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

浏览器访问时,会弹出登录框,只有输入正确的用户名和密码才能进入。这层保护虽然简单,但对付大多数场景已经足够。

当然,这些方法可以组合使用。比如限制频率的同时,只允许特定IP访问,或者再加上身份验证。实际部署时,根据需求灵活搭配就好。

本文转载于:https://www.yisu.com/ask/5631116.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。