编程技术分享平台

网站首页 > 技术教程 正文

通过Nginx配置允许/不允许IP地址(nginx配置允许跨域http)

xnh888 2024-09-14 15:37:54 技术教程 24 ℃ 0 评论

下面是一个Nginx配置的例子,它阻止了一个IP地址列表。

http {
      ...
          deny 192.168.1.100;
      deny 192.168.1.101;
      deny 192.168.1.102;
      ...
}
      

这将阻止从IP地址192.168.1.100、192.168.1.101和192.168.1.102对服务器的访问。

你也可以使用地理指令来阻止一个范围的IP地址。

http {
      ...
          geo $block_ips {
                    default 0;
                    192.168.1.0/24 1;
                    192.168.2.0/24 1;
          }
      server {
                ...
                        if ($block_ips) {
                                      return 403;
                        }
                ...
      }
                    ...
      }
                    

这将阻止从IP地址范围192.168.1.0/24和192.168.2.0/24对服务器的访问。

你也可以用lua脚本对照IP列表来检查IP地址

http {
      ...
          lua_shared_dict blocked_ips 10m;
      ...
          server {
                    ...
                            access_by_lua_block {
                                          local blocked_ips = ngx.shared.blocked_ips
                                          local client_ip = ngx.var.remote_addr
                                          if blocked_ips:get(client_ip) then
                                                          return ngx.exit(ngx.HTTP_FORBIDDEN)
                                          end
                            }
                    ...
          }
                        ...
          }
                        

你可以通过lua脚本或nginx配置文件将IP添加到共享目录 "blocked_ips"。

http {
      ...
          lua_shared_dict blocked_ips 10m;
      ...
          init_by_lua_block {
                    local blocked_ips = ngx.shared.blocked_ips
                    blocked_ips:set("192.168.1.100", true)
                    blocked_ips:set("192.168.1.101", true)
                    blocked_ips:set("192.168.1.102", true)
          }
      ...
}
      

你可能需要根据你的具体使用情况和设置对配置进行调整。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表