举例比如限制泰国地区的IP访问:

前提条件,安装了http geoip 或stream geoip模块的Nginx Plus或者开源nginx

Maxmind的GeoLite Legacy数据库

1.安装NginxPlus

yum -y install nginx-plus-module-geoip

在配置文件中开启GeoIP动态模块

load_module modules/ngx_http_geoip_module.so;

load_module modules/ngx_stream_geoip_module.so;

1.1 对于开源的Nginx

nginx -V 确保已经安装了geoip模块

2.然后从MaxMind下载ip库文件

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz

(GeoLite2-Country.mmdb)

配置地理位置数据库的路径

http语句中引用数据库文件

http {

...

geoip_country GeoIP/GeoIP.dat;

geoip_city GeoIP/GeoLiteCity.dat;

... }

通过geoip_country和geoip_city 指令的变量把数据传到map或split_client模块

map $geoip_country_content_codes $nearest_server {

default default {};

EU  eu;

NA  na;

AS  as;

AF  af;

...

}

然后可以根据 $nearest_server 变量传入的值选择一台upstream服务器;

......

server {

  listen  1235;

  proxy_pass $nearest_server;

...

   location / {root   /home/vpsee/www;if ($geoip_country_code = CN) {root /home/vpsee/cn;}
if ($geoip_country_code = VN) {root /home/vpsee/vn;}
...

}

upstream eu {

server eu1.example.com:12345;

server eu2.example.com:12345;

}

http语句内嵌server语句实现将IP库文件,通过IP判断是否提供网页服务。

$geoip_city_content_code  变量

proxy_pass 去匹配相应的upstream服务器,进行响应即可。

转载于:https://www.cnblogs.com/Enzoo/p/10571335.html

Nginx使用GeoIP模块来限制地区访问相关推荐

  1. Nginx 和 GeoIP 模块的使用

    使用Nginx 和 GeoIP 模块的可以来处理不同地区的访问,也可以处理不同地区访问项目不同的版本(灰度版本或是正常版本) 如果想屏蔽某个地区的 IP 访问的话,用 iptables 把来自某个国家 ...

  2. nginx使用ssl模块配置支持HTTPS访问

    背景: 项目开发中用到了微信小程序,但是服务器配置URL必须是HTTPS,所以需要通过配置nginx的SSL模块来支持HTTPS访问,也就是说,要做一个网站域名为 XXX.com 要求通过HTTPS: ...

  3. nginx应用geoip模块,实现不同地区访问不同页面的需求(实践版)

    https://www.52os.net/articles/configure-nginx-using-geoip-allow-whitelist.html       搞了几天没有搞定,这篇文章一下 ...

  4. Nginx通过GeoIP模块获取IP所在地理位置

    Geo是geographic的缩写,意思是地理的,GeoIP即为IP地理位置数据库,可以根据IP获得地理位置信息.GeoIP库可以根据IP地址(支持IPv4 和 IPv6), 定位该IP所在的 洲.经 ...

  5. NGINX:nginx精准禁止特定国家或者地区IP访问

    转载来源 :NGINX:nginx精准禁止特定国家或者地区IP访问 :http://www.safebase.cn/article-258751-1.html 摘要: 要求:对网站的信息,比如某个访问 ...

  6. 实践:nginx代理,通过使用GeoIp模块获取访问者IP及访问地区信息

    目录 前言 一.在Linux中创建存放nginx模块文件夹 存在就不需要再次创建. 将所有nginx额外模块包都放到这个目录下 二.配置host文件代理,避免访问github太慢(已配置了跳过) 三. ...

  7. Nginx 附录C 模块编译,调试与测试

    Nginx 附录C 模块编译,调试与测试 C.1 编译与安装 环境要求 操作系统:目前Nginx各版本在以下操作系统和平台测试通过: FreeBSD 3 - 10 / i386; FreeBSD 5 ...

  8. nginx利用ngx_http_geoip2_module模块对国外ip限制

    1. 安装必要的环境 yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel ...

  9. Ubuntu20.04中fastdfs,nginx的安装和配置(apt-get安装nginx添加fastdfs-nginx-module模块)

    Ubuntu20.04中fastdfs,nginx的安装和配置 环境准备: 编译环境: Ubuntu20.04 使用的系统软件: fastdfs-6.07 fastdfs-nginx-module-1 ...

  10. nginx配置GeoIP

    由于之前没有接触过服务器,配置这个耗费了我好长时间 nginx 配置GeoIP实现不同国家访问不同的URL 首先要确保nginx已经配置了GeoIP模块,如果没有那就先来配置GeoIP 找到nginx ...

最新文章

  1. ubuntu18.04 实现中文化 中文输入法
  2. 正确的 send recv 行为
  3. pat天梯赛L2-010. 排座位
  4. 用非递归方式实现二叉树后序遍历
  5. 【渝粤题库】广东开放大学 物业财税管理基础 形成性考核
  6. 垂直串联六关节机器人调试手册_不止下棋能赢你!新型协作机器人样样精通
  7. 学习算法你必须知道的一些基础知识(文末福利)
  8. 简述传统动画跟计算机动画的异同点,Flash动画设计与传统动画设计的特点比较研究...
  9. Ubuntu已经很好用了
  10. 北广传媒RTMP流媒体服务器漏洞
  11. linux禁用ssh弱加密算法,SSHSSL弱加密算法漏洞修复
  12. 制作LINUX安装DEB,脚本中的函数报错怎么办?
  13. 一元、二元函数图像绘制
  14. Scrapy框架: 异常错误处理
  15. 只是一个文件节点类为了项目的数据处理
  16. Syntax error on token(s), misplaced construct(s)
  17. SFFAI召集人蓄势待发!你准备好了吗?
  18. 【兄弟反目成仇系列】:我只是写了一个爆炸信息窗口脚本,好兄弟追了我几条街~
  19. 等待了两年,最终得以如愿,不容易!
  20. SAP ABAP Odata

热门文章

  1. 苹果Mac专业的 Go 开发集成环境:JetBrains GoLand
  2. 传奇电子cq9跳高高、跳起来规则与操作技巧
  3. 让你的 Linux 远离黑客(二):另外三个建议
  4. Could not find class
  5. 企业生产一线管理应找怎样的好帮手?
  6. VMware vSphere 5.1 群集深入解析(二十八)- vSphere配置
  7. 学习Linux的七点忠告
  8. Unicode详解zz
  9. 学点 C 语言(32): 函数 - 返回值
  10. 查找丢包故障点的一个好命令:pathping