Nginx和GeoIP模块读取IP所在的地域信息方法

Linux安装GeoIP

yum install nginx-module-geoip

http_geoip_module使用场景

一、区别国内外作HTTP访问规则

二、区别国内城市地域作HTTP访问规则

yum 安装好后找到安装的模块文件

如果nginx是用yun安装的一般是安装到 /etc/nginx/modules/目录下

注意:如果nginx不是yum安装的而是源码编译安装的需要从新安装编译一次nginx加上此模块,然后就不用手动加入此模块了。

手动加入模块

在nginx.conf配置文件的头部载入模块和http是同一个级别的

load_module "modules/ngx_http_geoip_module.so";
load_module "modules/ngx_stream_geoip_module.so";

因为GeoIP是基于MaxMind 提供了数据库文件来读取地域信息的所以需要下载ip的地域文件。

这个数据库是二进制的,不能用文本编辑器打开,需要上面的 GeoIP 库来读取。

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz #国家的地域IP
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz  #城市的地域IP

然后解压

load_module "modules/ngx_http_geoip_module.so";
load_module "modules/ngx_stream_geoip_module.so";

.......

http{
geoip_country /etc/nginx/geoip/GeoIP.dat; #加载国家IP
geoip_city /etc/nginx/geoip/GeoLiteCity.dat; #加载城市IP

.........

 server
 {
 ......

 location / {
 #判断如果不是中国的就返回403;
 if ($geoip_country_code != CN) {
  return 403;
 }
 }
 #返回国家城市信息
 location /myip {
 default_type text/plain;
 return 200 "$remote_addr $geoip_country_name $geoip_country_code $geoip_city";
 }

....
 }
}

然后访问 你的IP地址/myip 就可以返回IP所在的国家城市信息了。

以上这篇Nginx和GeoIP模块读取IP所在的地域信息方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Nginx geoip模块实现地区性负载均衡

    相信做过awstats的都用过开源的geoip.dat  ip数据库,刚好nginx wiki上有geoip 模块,这样就可以实现地区性的负载均衡,但是maxmind 的ip数据库对中国的支持不算太好,不过现在也不错了~ 参考文章:http://wiki.nginx.org/NginxHttpGeoIPModule 说下我的环境,我有一台美国linux 服务器,一台美国的windows 2003 ,一台本的XP.机器,其他测试用户都是,QQ群里的朋友,好了开始测试 linux : 75.125.

  • Nginx和GeoIP模块读取IP所在的地域信息方法

    Linux安装GeoIP yum install nginx-module-geoip http_geoip_module使用场景 一.区别国内外作HTTP访问规则 二.区别国内城市地域作HTTP访问规则 yum 安装好后找到安装的模块文件 如果nginx是用yun安装的一般是安装到 /etc/nginx/modules/目录下 注意:如果nginx不是yum安装的而是源码编译安装的需要从新安装编译一次nginx加上此模块,然后就不用手动加入此模块了. 手动加入模块 在nginx.conf配置文

  • Nginx实现不同域名输出不同的服务器头信息方法

    大家或许会有这种奇葩的需求... 要是同一台主机上, 需要针对不同的域名输出不同的Server头, 怎么实现呢? 我们需要用到ngx_headers_more模块 复制代码 代码如下: location / {     if ( $host = 'segmentfault.com' ){         more_set_headers 'Server: Nginx';     }     if ( $host = '0x01.segmentfault.com' ){         more_

  • php 伪造ip以及url来路信息方法汇总

    php 来路伪造 第一种:php_curl 开启方法: 1.找到php.ini, 修改extension=php_curl.dll 把前面的分号去掉; 2.把php_curl.dll, php5ts.dll, libeay32.dll, ssleay32.dll 复制到 windows/system32目录下 然后重启php的服务; 3.建test.php测试文件, 插入以下代码: 复制代码 代码如下: <?php $ch = curl_init(); //初始化 curl_setopt($ch

  • Nginx服务器中配置GeoIP模块来拦截指定国家IP

    最近有一个网站项目需求:需要屏蔽国内的方问请求.花时间研究了一下这方面的资料.目前找到的最佳方法就是使用 Nginx 的 GeoIP 模块来实现地区的识别.然后配置相关国家的 ISO 名称,禁止访问即可.记录一下相关过程. 编译 GeoIP 组件 maxmind 提供的免费版数据库已经可以满足需求,在使用数据库前,需要先编译 GeoIP 组件: wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.8.tar.gz ./co

  • java根据ip地址获取详细地域信息的方法

    互联网有很多接口可以实现通过ip查询到具体的位置,如下: 通过淘宝IP地址库获取IP位置 请求接口(GET):http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串] 响应信息:(json格式的)国家 .省(自治区或直辖市).市(县).运营商 返回数据格式: {"code":0,"data":{"ip":"210.75.225.254","country"

  • python使用在线API查询IP对应的地理位置信息实例

    这篇文章中的内容是来源于去年我用美国的VPS搭建博客的初始阶段,那是有很多恶意访问,我就根据access log中的源IP来进行了很多统计,同时我也将访问量最高的恶意访问的源IP拿来查询其地理位置信息.所以,我就用到了根据IP查询地理位置信息的一些东西,现在将这方面积累的一点东西共享出来. 根据IP查询所在地.运营商等信息的一些API如下(根据我有限的一点经验):1. 淘宝的API(推荐):http://ip.taobao.com/service/getIpInfo.php?ip=110.84.

  • python使用xlrd模块读取xlsx文件中的ip方法

    程序中经常需要使用excel文件,批量读取文件中的数据 python读取excel文件可以使用xlrd模块 pip install xlrd安装模块 示例: #coding=utf8 import xlrd from os import path import sys filename='ip.xlsx' if not path.isfile(filename): print "err: not exists or not file ip.xlsx " sys.exit() getfi

  • 网站如何通过nginx设置黑/白名单IP限制及国家城市IP访问限制

    目录 一.黑/白名单IP限制访问配置 1.第一种方法:allow.deny 2:第二种方法,ngx_http_geo_module 3.ngx_http_geo_module 负载均衡(扩展) 二.国家地区IP限制访问 1:安装ngx_http_geoip_module模块 2.下载 IP 数据库 3.配置nginx 总结 一.黑/白名单IP限制访问配置 nginx配置黑白名单有好几种方式,这里只介绍常用的两种方法. 1.第一种方法:allow.deny deny和allow指令属于ngx_ht

  • Nginx配置 location模块实现路由(反向代理、重定向)功能

    目录 前置文章: 匹配规则 proxy_pass 代理转发 root 与 index root 与 alias location 执行过程 rewrite 重定向 前置文章: Linux(CentOS7) 下 Nginx1.15.8 安装步骤 Nginx 的配置文件 nginx.conf 我们访问一个网址,服务器返回对应的资源.那么一个网址是如何对应一个资源的呢?用 Nginx 可以很好地帮我们实现路由功能,我们所有需要做的就是配置好 location 模块. 语法规则 location [=|

随机推荐