Nginx使用GeoIP模块来限制地区访问
举例比如限制泰国地区的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模块来限制地区访问相关推荐
- Nginx 和 GeoIP 模块的使用
使用Nginx 和 GeoIP 模块的可以来处理不同地区的访问,也可以处理不同地区访问项目不同的版本(灰度版本或是正常版本) 如果想屏蔽某个地区的 IP 访问的话,用 iptables 把来自某个国家 ...
- nginx使用ssl模块配置支持HTTPS访问
背景: 项目开发中用到了微信小程序,但是服务器配置URL必须是HTTPS,所以需要通过配置nginx的SSL模块来支持HTTPS访问,也就是说,要做一个网站域名为 XXX.com 要求通过HTTPS: ...
- nginx应用geoip模块,实现不同地区访问不同页面的需求(实践版)
https://www.52os.net/articles/configure-nginx-using-geoip-allow-whitelist.html 搞了几天没有搞定,这篇文章一下 ...
- Nginx通过GeoIP模块获取IP所在地理位置
Geo是geographic的缩写,意思是地理的,GeoIP即为IP地理位置数据库,可以根据IP获得地理位置信息.GeoIP库可以根据IP地址(支持IPv4 和 IPv6), 定位该IP所在的 洲.经 ...
- NGINX:nginx精准禁止特定国家或者地区IP访问
转载来源 :NGINX:nginx精准禁止特定国家或者地区IP访问 :http://www.safebase.cn/article-258751-1.html 摘要: 要求:对网站的信息,比如某个访问 ...
- 实践:nginx代理,通过使用GeoIp模块获取访问者IP及访问地区信息
目录 前言 一.在Linux中创建存放nginx模块文件夹 存在就不需要再次创建. 将所有nginx额外模块包都放到这个目录下 二.配置host文件代理,避免访问github太慢(已配置了跳过) 三. ...
- Nginx 附录C 模块编译,调试与测试
Nginx 附录C 模块编译,调试与测试 C.1 编译与安装 环境要求 操作系统:目前Nginx各版本在以下操作系统和平台测试通过: FreeBSD 3 - 10 / i386; FreeBSD 5 ...
- nginx利用ngx_http_geoip2_module模块对国外ip限制
1. 安装必要的环境 yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel ...
- Ubuntu20.04中fastdfs,nginx的安装和配置(apt-get安装nginx添加fastdfs-nginx-module模块)
Ubuntu20.04中fastdfs,nginx的安装和配置 环境准备: 编译环境: Ubuntu20.04 使用的系统软件: fastdfs-6.07 fastdfs-nginx-module-1 ...
- nginx配置GeoIP
由于之前没有接触过服务器,配置这个耗费了我好长时间 nginx 配置GeoIP实现不同国家访问不同的URL 首先要确保nginx已经配置了GeoIP模块,如果没有那就先来配置GeoIP 找到nginx ...
最新文章
- ubuntu18.04 实现中文化 中文输入法
- 正确的 send recv 行为
- pat天梯赛L2-010. 排座位
- 用非递归方式实现二叉树后序遍历
- 【渝粤题库】广东开放大学 物业财税管理基础 形成性考核
- 垂直串联六关节机器人调试手册_不止下棋能赢你!新型协作机器人样样精通
- 学习算法你必须知道的一些基础知识(文末福利)
- 简述传统动画跟计算机动画的异同点,Flash动画设计与传统动画设计的特点比较研究...
- Ubuntu已经很好用了
- 北广传媒RTMP流媒体服务器漏洞
- linux禁用ssh弱加密算法,SSHSSL弱加密算法漏洞修复
- 制作LINUX安装DEB,脚本中的函数报错怎么办?
- 一元、二元函数图像绘制
- Scrapy框架: 异常错误处理
- 只是一个文件节点类为了项目的数据处理
- Syntax error on token(s), misplaced construct(s)
- SFFAI召集人蓄势待发!你准备好了吗?
- 【兄弟反目成仇系列】:我只是写了一个爆炸信息窗口脚本,好兄弟追了我几条街~
- 等待了两年,最终得以如愿,不容易!
- SAP ABAP Odata