nginx之Geoip读取地域信息模块

1 geoip_module模块

基于IP地址匹配MaxMind GeolP二进制文件,读取IP所在地域信息。

yum install nginx-module-geoip

geoip2已经有了,安装另寻

2、http_geoip_module使用

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

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

用到的ip数据库

链接:https://pan.baidu.com/s/1KcFhouFhP7jQOEZaZutMtw  提取码:okjp


vim nginx.conf
load_module modules/ngx_http_geoip_module.so;   #导入模块
load_module modules/ngx_stream_geoip_module.so;
​
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
​
    include /etc/nginx/conf.d/cp5/*.conf;
}
​

cat conf.d/cp5/test_geoip.conf
geoip_country /etc/nginx/geoip/GeoIP.dat;       #
geoip_city /etc/nginx/geoip/GeoLiteCity.dat;

# geoip_country /tmp/geoip/GeoLite2-Country/GeoLite2-Country.mmdb;
# geoip_city /tmp/geoip/GeoLite2-City/GeoLite2-City.mmdb;

server {
    listen       80;
    server_name  web01.fadewalk.com;​

    location / {
        if ($geoip_country_code != CN) {
            return 403;
        }
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

   location /myip {
        default_type text/plain;
        return 200 "$remote_addr $geoip_country_name $geoip_country_code $geoip_city";
   }

}



测试

nginx之Geoip读取地域信息模块

上一篇:ruby – Maxmind Geoip城市编码问题


下一篇:如何通过PHP检测中东访问者?