zoukankan      html  css  js  c++  java
  • nginx中Geoip_module模块的使用

    nginx中Geoip_module模块的使用
    
    1.安装模块,nginx也是通过yum安装
    yum install nginx-module-geoip -y
    
    # 可以看到模块的链接库文件
    [root@test8_hadoop_kaf modules]# pwd
    /etc/nginx/modules
    [root@test8_hadoop_kaf modules]# ls
    ngx_http_geoip_module-debug.so  ngx_stream_geoip_module-debug.so
    ngx_http_geoip_module.so        ngx_stream_geoip_module.so
    
    下载ip库信息文件并放在/etc/nginx/geoip/目录
    wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
    wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
    
    [root@test8_hadoop_kaf conf.d]# mkdir -p /etc/nginx/geoip/
    [root@test8_hadoop_kaf ~]# gunzip GeoIP.dat.gz 
    [root@test8_hadoop_kaf ~]# gunzip GeoLiteCity.dat.gz
    [root@test8_hadoop_kaf ~]# mv *.dat /etc/nginx/geoip/
    
    
    2.Nginx.conf全局配置中添加 load_module /usr/lib64/nginx/modules/ngx_http_geoip_module.so; 配置
    
    [root@test8_hadoop_kaf conf.d]# cat ../nginx.conf 
    
    user  nginx;
    worker_processes  8;
    load_module /usr/lib64/nginx/modules/ngx_http_geoip_module.so;
    
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        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;
    
        sendfile        on;
        #tcp_nopush     on;
    
        keepalive_timeout  65;
        #gzip  on;
    
        include /etc/nginx/conf.d/*.conf;
    }
    
    
    3.配置访问接口
    [root@test8_hadoop_kaf conf.d]# cat geo_test.conf 
    geoip_country /etc/nginx/geoip/GeoIP.dat;
    geoip_city /etc/nginx/geoip/GeoLiteCity.dat;
    
    
    server{
        listen 80;
        server_name localhost;
    
        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";
        }
    }

    国内测试

    在国外测试
    [root@u04mix03 ~]# curl http://es.chinasoft.com/myip
    107.150.X.X United States US Los Angeles

    [root@u04mix03 ~]# curl http://es.yayaim.com
    <html>
    <head><title>403 Forbidden</title></head>
    <body bgcolor="white">
    <center><h1>403 Forbidden</h1></center>
    <hr><center>nginx/1.12.2</center>
    </body>
    </html>

  • 相关阅读:
    Javascript的异步和回调
    JS-使用工厂方法创建对象
    PHPUnit使用教程——PHP环境变量+x-debug+composer+phpunit配置安装(超详细!)
    JQuery 纵向二级菜单与对齐方式
    图像映射<map>、<area>
    打开另一个窗口
    多行文本省略号
    replace 正则
    jquery each用法
    li前面的原点或者方的样式修改html中列表项li所显示的圆点的颜色?,以及相关样式的设定
  • 原文地址:https://www.cnblogs.com/reblue520/p/8287365.html
Copyright © 2011-2022 走看看