当前位置:论坛首页 > Linux面板 > 求助

【已解答】宝塔能实现网站限定不同国家访问吗?

发表在 Linux面板2021-7-13 09:35 [复制链接] 1 1808

如题,高手们能不能实现宝塔限定网站在指定国家才能访问。
使用道具 举报 只看该作者 回复
发表于 2021-7-13 10:06:22 | 显示全部楼层
您好,您有这个国家的IP库就可以实现。
我下面给你使用伪代码实现下,原理和思路,具体应用到网站上,你要自己去改配置文件了
例如,把美国这个国家禁止访问,
1、先增加geoip这个模块,参考河妖写的教程帖子:https://www.bt.cn/bbs/forum.php? ... 118&highlight=geoip
2、到geoip上官方下载到ip库,https://dev.maxmind.com/geoip/legacy/geolite/

GeoIP.dat   GeoLiteCity.dat
放到  /www/server/panel/nginx/vhost/geoip/ 目录下,
3、编写配置文件,geoip.conf,放到
/www/server/panel/nginx/vhost/目录下
内容:
  1. geoip_country /www/server/panel/nginx/vhost/geoip/GeoIP.dat;
  2. geoip_city /www/server/panel/nginx/vhost/geoip/GeoLiteCity.dat;  
复制代码


4、使用map定义一个规则
  1. map $geoip_country_code $allowed_country {
  2.         default yes; # default都能访问
  3.         US no; # 禁止从美国的访问
  4. }
复制代码

然后在网站配置文件中引用这个规则

  1. server {
  2.         ...其他部分省略...

  3.         if ($allowed_country = no) {
  4.             # 444是空response
  5.             return 444;
  6.         }
  7. }
复制代码
添加网站配置.png
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表