转载

Nginx安装geoip

温馨提示:
本文最后更新于 2023年11月30日,已超过 519 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

一 安装依赖

yum install libmaxminddb-devel -y
yum -y install epel-release jemalloc pcre* openssl* unzip wget zip

二.下载geoip库

wget http://mirror.cnop.net/web/module/ngx_http_geoip2_module-master.zip
unzip ngx_http_geoip2_module-master.zip

三. 下载tengine

wget https://mirror.cnop.net/web/tengine/tengine-2.3.3.tar.gz
tar zxvf tengine-2.3.3.tar.gz

四. 进入tengine文件夹编译

先添加一个nginx用户

useradd nginxu

编译

./configure --user=nginxu --group=nginxu --prefix=/usr/local/tengine --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --add-module=./modules/ngx_http_upstream_vnswrr_module --add-module=./modules/ngx_http_concat_module --add-module=/usr/local/tengine/ngx_http_geoip2_module-master

--add-module=/usr/local/tengine/ngx_http_geoip2_module-master 对应路径为下载的geoip库路径

安装

make && make install

五. 进入/usr/local/tengine/sbin目录

./nginx -m

其中包含有ngx_http_geoip2_module 即为安装成功

六. 下载ip库

wget http://mirror.cnop.net/web/module/Geoip2.zip
unzip Geoip2.zip

七. 修改配置文件

http块

    #gzip on
    geoip2 /usr/local/tengine/ipgeo/GeoLite2-Country.mmdb {
        $geoip2_data_country_code country iso_code;
        }
    map $geoip2_data_country_code $allowed_country {
        default yes;
        CN no;
        }
    #geo $remote_addr $ip_whitelist {
    #    default 0;
    #    include ip.conf;
    #}

如果要自定义白名单,还可以新建一个白名单文件,添加到后面

server块

location / {
             if ($allowed_country = yes){
                proxy_pass http://xxxx:8888;
            }
            #代理的目标地址
            proxy_pass http://127.0.0.1:17687;
        }

allowed_country默认是yes 中国地区的是no

所以此处if ($allowed_country = yes)代表的是国外

正文到此结束