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

记得nginx编译时一定要加载geoip这个模块

https://blog.csdn.net/beyond__devil/article/details/52838422   地区代码表

主配置文件geoip模块的配置如下:

geoip_country /usr/local/nginx/conf/GeoIP/GeoIP.dat;
geoip_city /usr/local/nginx/conf/GeoIP/GeoLiteCity.dat;
geo $remote_addr $ip_whitelist {
default 0;
include ip.conf;
}
map $geoip_city $allow_city {
default no;
Jinhua yes;
#Beijing yes;
Shanghai yes;
Guangzhou yes;
Chongqing yes;
Shandong yes;
}

我的vhost目录下的a.conf配置如下

server {
listen 80;
server_name jiaji.com;
access_log /home/nginx/beijing.log;

location / {
root /var/www/web/ABBEIJING/xiqing;
index index.html index.htm index.php;

if ( $geoip_region = "22" ) {       ##这里的22是北京地区
root /var/www/web/ABBEIJING/laohushenhe;
}

if ($allow_city = yes) {
root /var/www/web/ABBEIJING/xiqing;
}

}
}

另一个运用geoip的站点,需求:默认访问/var/www/web/hongb目录,北上广深重庆访问/var/www/web/zhi目录,在允许城市列表(nginx.conf文件里指定的允许城市列表)的城市也是访问/var/www/web/hongb目录

server {
listen 80;
server_name hongb.com;

location / {
root /var/www/web/hongb;
index index.html index.htm index.php;

if ( $geoip_region = "22" ) { ##这里的22是北京地区
root /var/www/web/zhi;
}

if ( $geoip_region = "23" ) { ##这里的23是上海地区
root /var/www/web/jzhi;
}

if ( $geoip_region = "30" ) { ##这里的30是广东地区
root /var/www/web/jzhi;
}

if ( $geoip_region = "32" ) { ##这里的32是四川地区
root /var/www/web/jzhi;
}

if ($allow_city = yes) {
root /var/www/web/hongb;
}
}
}

转载于:https://www.cnblogs.com/leon2659/p/9534053.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模块获取IP所在地理位置

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

  4. Nginx根据Pc端和手机端访问不同页面

    有的时候一个网站需要区别是pc访问的 还是手机访问的,根据平台的不同让他跳转到不同的入口;可以这样实现: server {### nginx 用来当静态资源的服务器listen 83;server_n ...

  5. 简单修改nginx的配置,限制指定IP访问指定页面

    一个客户的需求,看了很多的教程,实现方式都不一样,现将我自己配置的分享给大家. 1.修改nginx配置文件 (路径/usr/local/openrestry/nginx/conf/nginx.conf ...

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

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

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

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

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

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

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

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

最新文章

  1. C++中虚函数可以是内联函数吗?
  2. python使用matplotlib可视化线图(line plot)、自定义可视化图像的四个边框的色彩、可以分别设置矩形每一条边的色彩(change the axis color)
  3. python调用ffmpeg_Python - FFmpeg
  4. Git笔记(9) 打标签
  5. python的命名空间_python命名空间(namespace)
  6. 表单嵌套问题的解决方法
  7. Windows 8 Consumer Preview
  8. navicat for MySQL连接本地数据库时报1045错误的解决方法
  9. 小白教程系列——XMind8 Pro下载安装
  10. 企业常见的5种经济活动形式用借贷记账法在资产负债表上的体现
  11. 产品经理:个人能力提升方法
  12. QuerySet,本质上是一个给定的模型的对象列表
  13. 外贸七日通 第六日 合作篇 与货代打交道
  14. EXCEL单元格中提取部分文本
  15. 啊哈算法, 水管工游戏
  16. python画人脸代码_[转]7行Python代码的人脸识别
  17. Nginx启动报错: could not open error log file: open() q unable to find local peer: 192.168.10.102:8848,
  18. 超声图像散斑去噪方法
  19. Matlab样条工具箱(Spline ToolBox)与曲线拟合
  20. 腐蚀rust电脑分辨率调多少_腐蚀RUST怎么提高游戏画质_提高游戏画质方法介绍

热门文章

  1. 二下语文书电子课本_小学生语文成绩好,不是靠补课,把课本吃透,才是高效学习方法...
  2. oracle fnd file.log,OracleEBSWIP模块DebugLog收集方法
  3. hive mysql类型,(二)Hive数据类型、数据定义、数据操作和查询
  4. 怎么在linux上修改mysql端口映射_如何在Linux中更改默认的MySQL / MariaDB端口
  5. html中依次展开的搜索框,jQuery+CSS3动画展开收缩搜索框特效
  6. php ip 短时间 重复,php 限制同一个IP 一段时间不能评论多次,能给我详细解决的...
  7. mysql撤销用户授权_mysql用户授权及撤销
  8. 使用python构建三层神经网络、softmax函数
  9. 基于java SSM springboot动物检疫信息管理系统设计和实现
  10. c语言补全程序,跪求高手解答简单的程序补全题~!