Nginx篇之限制公网IP访问特定接口url实操

一、nginx配置限制IP访问

要在 Nginx 配置中添加 IP 限制,阻止来自指定公网 IP 地址段的访问,并且只对特定路径进行限制,可以在 location 配置中使用 deny 和 allow 指令来控制访问。

二、案例

1. 需求

对来自特定公网的地址段,禁止访问 /aipassweb-hx-api/biz/task-reflow/queryAlgorithm这个API接口。
下面是优化后的配置:

upstream backend {
        server backend1.example.com;

}
    server {
        listen 8808;
        server_name 10.127.192.5;

        location / {
        	proxy_pass_header Server;
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Scheme $scheme;
			proxy_pass http://backend;
        }

        # 精确匹配目标路径
    	location = /aipassweb-hx-api/biz/task-reflow/queryAlgorithm {
            # 屏蔽特定IP(优先级高于allow all)
            deny 10.127.192.249;
        	# 禁止IP段
        	deny 60.176.143.233/29;
        	deny 182.150.55.94/24;
        	deny 117.39.60.106;

        	# 允许其他所有IP访问
        	allow all;
        	proxy_pass_header Server;
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Scheme $scheme;
			proxy_pass http://backend;
        }
    }

配置说明:

  1. deny 指令:用来禁止指定的 IP 地址段或单个 IP 地址访问。可以使用 CIDR(如 /24、/29)表示子网地址段,也可以直接指定单个 IP 地址。

  2. allow 指令:用于允许特定 IP 地址段或所有 IP 地址访问。在这里,allow all; 确保其他未被拒绝的 IP 地址可以正常访问。

  3. 顺序与优先级:Nginx 配置文件中,deny 的优先级高于 allow,因此在该路径下,首先会检查 deny 列表,如果匹配上则拒绝访问,未匹配的 IP 地址则允许访问。

优化后的配置

  1. 每个需要被拒绝访问的公网地址或地址段都被单独列出,并且使用 deny 指令进行限制。
  2. allow all 确保其他没有在 deny 列表中的 IP 地址能够访问此路径。

这种方式适合用于特定路径的 IP 访问控制,而其他路径则不会受到这些规则的影响。

2. 测试是否生效

  1. 从deny的IP节点【10.127.192.249】来curl测试该url接口,看看返回结果
    在这里插入图片描述
    返回403 Forbidden,说明生效~
  2. 从其他未限制的节点curl测试访问,接口返回正常
    在这里插入图片描述
    OK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听说唐僧不吃肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值