nginx 获取访问源IP的国家和城市信息

回复 收藏
本帖最后由 乐橙306 于 2016-4-8 14:47 编辑
  1. 参考文档
  2. http://www.nginx.cn/doc/optional/geoip.html
  3. http://www.tuicool.com/articles/6femi2
  4. http://ju.outofmemory.cn/entry/16264
  5. 此模块非核心模块,用于获取ip对应的国家和城市信息,然后针对地区做访问控制
  6. 需要在编译的时候手动添加编译参数 --with-http_geoip_module
  7. __配置示例__
  8. http {
  9.     geoip_country         /var/GeoIP/GeoIP.dat;
  10.     geoip_city            /var/GeoIP/GeoLiteCity.dat;
  11.     log_format nginx_log    '$remote_addr"[$time_local]"$request"$status"$body_bytes_sent"'
  12.                             '$http_referer"$http_user_agent"$http_x_forwarded_for"'
  13.                             '$request_time"$upstream_addr"$host"$request_body'
  14.                             '$geoip_country_name $geoip_region $geoip_city' ;
  15. .
  16. .
  17. .
  18. .
  19. cd  /var/GeoIP
  20. #下载免费的geo_city数据库
  21. wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz  && gunzip  GeoLiteCity.dat.gz
  22. #下载免费的geo_coundty数据库
  23. wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz  && gunzip GeoIP.dat.gz
  24. 查看访问日志
  25. [root@niaoyun-101 logs]# cat   access.log  |  tail  -1
  26. 116.231.156.251"[08/Apr/2016:14:26:41 +0800]"GET /1.htm HTTP/1.1"200"36510"-"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36 Core/1.47.150.400 QQBrowser/9.3.7082.400"-"0.037"-"118.192.147.101"-China 23 Shanghai
  27. [root@niaoyun-101 logs]#
  28. 当源ip为湖北 则自动访问hubei目录;当源ip为上海,则自动访问shanghai目录
  29. location /{
  30.     if ($geoip_city = Hubei) {
  31.         root /opt/nginx/html/hubei;
  32.     }
  33.     if ($geoip_region = “23” ) {
  34.        root /opt/nginx/html/shanghai;
  35.     }
  36. }

2016-04-08 14:43 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: