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)代表的是国外
正文到此结束