什么是GeoIP

GeoIP为通过访问IP从而定位到经纬度、国家地图、或者省(州)等位置信息。我们可以通过此功能进行对某一个国家、或者某一个地域进行限制访问,或者是实现自定义个性化的功能。

如何启用GeoIP

# libmaxminddb (因为需要读取在GeoIP2的IP数据库库,需要使用到libmaxminddb中的一个C库)
wget https://github.com/maxmind/libmaxminddb/releases/download/1.3.2/libmaxminddb-1.3.2.tar.gz
tar zxvf libmaxminddb-1.3.2.tar.gz
cd libmaxminddb-1.3.2
./configure
make
make  install
# 添加库路径并更新库
sh -c "echo /usr/local/lib  >> /etc/ld.so.conf.d/local.conf"
ldconfig
# GeoIP
wget https://github.com/leev/ngx_http_geoip2_module/archive/3.2.tar.gz
tar zxvf 3.2.tar.gz
# Nginx./configure --prefix=/usr/local/nginx --add-module=../ngx_http_geoip2_module-3.2
make & make install
# GeoLite城市库及国家库(这个库是为了将IP地址翻译成具体的地址信息)
wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz
gunzip GeoLite2-City.mmdb.gz
gunzip GeoLite2-Country.mmdb.gz
mkdir /data/geoip
mv GeoLite2-City.mmdb  /data/geoip/city.mmdb
mv GeoLite2-Country.mmdb /data/geoip/country.mmdb
# 修改配置文件启用GeoIP
vim /usr/local/nginx/conf/nginx.conf
http {geoip2 /data/geoip/country.mmdb {$geoip2_data_country_code default=CN country iso_code;$geoip2_data_country_name country names en;}geoip2 /data/geoip/city.mmdb {$geoip2_data_city_name default=Shenzhen city names en;}server {listen       80;server_name  localhost;location / {add_header geoip2_data_country_code $geoip2_data_country_code;add_header geoip2_data_city_name $geoip2_data_city_name;if ($geoip2_data_country_code = CN){root /data/webroot/cn;}if ($geoip2_data_country_code = US){root /data/webroot/us;}}
}

如何检查GeoIP效果

mkdir /data/webroot/us
mkdir /data/webroot/cn
echo "US Site" > /data/webroot/us/index.html
echo "CN Site" > /data/webroot/cn/index.html

美国硅谷ECS访问情况,GeoIP模块成功获取到国家信息为US,城市信息为San Mateo。

中国华南ECS访问情况,GeoIP模块成功获取到国家信息为CN,城市信息为Shenzhen。

Nginx之14斗转星移 - (GeoIP) 1相关推荐

  1. Nginx之14斗转星移 - (GeoIP)

    什么是GeoIP GeoIP为通过访问IP从而定位到经纬度.国家地图.或者省(州)等位置信息.我们可以通过此功能进行对某一个国家.或者某一个地域进行限制访问,或者是实现自定义个性化的功能. 如何启用G ...

  2. nginx 1.14 php,nginx 1.14.0 配置部署 thinkphp 5.1

    开始接触NGINX,配置tp5配了半天,找不到具体原因,于是用网上搜索到的配置复制粘贴搞定. 感谢 https://blog.csdn.net/qq_36431213/article/details/ ...

  3. ubuntu 14.04编译安装nginx 1.14.2

    环境:Ubuntu 14.04+nginx 1.14.1+php 近期,nginx 1.14.1报了漏洞需要将nginx版本升级到1.14.2.apt-get支持的最新版就是1.14.1,所以需要编译 ...

  4. nginx主机黑白名单[geoip]

    国家黑白名单通过 ngx_http_geoip2_module 模块实现 1.下载 libmaxminddb 并编译安装 wget https://github.com/maxmind/libmaxm ...

  5. CentOS 7.4安装Nginx 1.14.0

    一.安装所需环境 1.gcc 安装 yum install gcc-c++ 2.PCRE pcre-devel 安装 yum install -y pcre pcre-devel 3.zlib 安装 ...

  6. nginx 1.14 php,安装php7.2+nginx1.14.2常见报错解决方法_2018_lcf

    1.PHP(无底色行是错误信息,黑底色行是解决方法) configure: error: Cannot find OpenSSL's # yum -y install openssl openssl- ...

  7. nginx 1.14.0 配置部署 thinkphp 5.1

    开始接触NGINX,配置tp5配了半天,找不到具体原因,于是用网上搜索到的配置复制粘贴搞定. 感谢 https://blog.csdn.net/qq_36431213/article/details/ ...

  8. 如何用DNS+GeoIP+Nginx+Varnish做世界级的CDN

    如何用BIND, GeoIP, Nginx, Varnish来创建你自己的高效的CDN网络? CDN,意思是Content Distrubtion Network,意思是内容分发网络,简单的说,就是全 ...

  9. linux nginx漏洞修复,nginx-1.14.1 和 nginx-1.15.6 发布,修复HTTP/2和MP4模块中的漏洞

    nginx-1.14.1 稳定版和nginx-1.15.6主线版本已经发布,修复了HTTP/2(CVE-2018-16843,CVE-2018-16844)和MP4模块(CVE-2018-16845) ...

最新文章

  1. TIDB,面向未来的数据库到底是什么?
  2. python pytest allure_python-pytest-Allure2测试报告生成
  3. windows10远程桌面连接及问题解决
  4. 一个有趣的算法问题:如何定义一个分数类
  5. HTML基础重要知识点图文,HTML5基础知识点总结
  6. 滑动窗口最大值--单调队列
  7. 介绍一些平时用得到的服务/组件
  8. android圆形变方形动画,CSS3 简单的圆形/方形变形动画
  9. SOCKET bind INADDR_LOOPBACK和INADDR_ANY的区别
  10. 【2018ACM山东省赛 - C】Cities(最小生成树变形优化,贪心思维)
  11. Spring Boot中表格的请求以及表格界面的显示
  12. Redis ZSet 的几种使用场景
  13. 英寸和厘米的交互python_Python / PyQt4:如何找到显示器的尺寸(以英寸为单位)?...
  14. 黑群晖教程:(二)黑群晖安装DSM6.1x(图文)
  15. Struts2 通配符不能使用问题
  16. cmd命令跳舞代码_Golang语言元编程之代码生成
  17. 在Win10下搭建web服务器,使用本机IP不能访问,但是使用localhos或127.0.0.1可以正常访问的解决办法...
  18. 自媒体资源:分享8个免版权视频素材网站
  19. 市值超万亿港元!那个CEO写下70万行代码的公司上市了
  20. 十二星座匹配对象_十二星座最佳恋人配对

热门文章

  1. Linux下安装PyCharm
  2. 【报错记录】win10快捷键启动软件时很慢延迟问题
  3. 80万年薪挖不来一个区块链工程师的背后,传统IT人转型意愿高达80%,转型潮却远未到来......
  4. neo4j 数组属性(属性值有多个)
  5. Arduino、arm、树莓派、单片机四者有什么不同?【转载】
  6. 理解 Hanoi 汉诺塔非递归算法
  7. PostgreSQL 内存参数调优
  8. SHOP++支持的第三方支付方式
  9. IE9卸载后无法安装的解决办法
  10. 答读者问(11):有关研究生论文及研究方向等问题