logo NodeSeekbeta

如何让Nginx对来自不同ISP的请求分别响应不同的界面?

例如,我在公网上搭了一个网站,只允许来自特定IP地址如1.1.1.0/24和局域网的访问,其他IP则拒绝。
对来自中国电信的IP,返回电信的反诈中心界面;联通和移动同理。
非国内的IP,则返回CF的反炸界面。(图片仅为示例)

那么我该如何设置Nginx?因为这些运营商都拥有不止一个ASN,可以批量导入规则吗?

另外,CF免费版不允许设置拒绝来自某个国家的请求规则,那我是不是也只能在Nginx的设置里实现效果?(例如,禁止来自朝鲜IP的访问,只能手动在Nginx里ban掉175.45.176.0/22吗?)

  • 首先第一个问题你可以参考 nginx cross isp module这个模块,可以根据ISP地址分发至不同的地址。

    第二个问题,可以参考nginx的 ngx_http_access_module 模块进行自定义。

  • @Just纱世里 #2 用个vscode也行啊别少个括号啥的找半天

  • 你需要的是这个模块

    https://github.com/leev/ngx_http_geoip2_module

    然后导入 maxmind 或者 dbip 的 mmdb 按照不同 ASN 来判断然后返回不同内容

  • @openaddr #1
    好的我去看看,不知道小白一般该怎么上手?我现在改配置文件都是直接拿记事本改,太硬核了。
    虽然说确实不能太应该依赖图形界面,但是小白不都是这样慢慢熟练的。

  • 第一个,你可以用dns分流解析实现
    第二个通过nginx的防火墙可以实现
    也可以通过cf实现

  • 用cf简单一点

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有14692位seeker

🎉欢迎新用户🎉