昨天介绍了 Nginx 的安装,今天说说 GeoIP 模块的使用
检查 GeoIP 是否安装
首先需要确认当前安装的 Nginx 是否安装了 GeoIP 模块
1 | $ nginx -V |
如果版本信息中包含 --with-http_geoip_module
,则说明已经支持该模块,如果不支持请往下看
安装 GeoIP
首先安装依赖
1 | $ yum -y install zlib zlib-devel |
安装 GeoIP
1 | $ wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz |
使用ldconfig将库索引到系统中
1 | $ echo '/usr/local/lib' > /etc/ld.so.conf.d/geoip.conf |
检查库是否加载成功
1 | $ ldconfig -v | grep GeoIP |
将 GeoIP 模块编译到 Nginx 中
根据你当前 Nginx 的安装参数带上 --with-http_geoip_module
重新编译
1 | $ ./configure --user=nginx --group=nginx \ |
或者重新安装
1 | $ wget https://nginx.org/download/nginx-1.12.2.tar.gz |
使用 GeoIP
首先查看本地是否已有 GeoIP 数据库
1 | $ cd /usr/local/share/GeoIP |
如果没有这两个库,则手动下载
1 | wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz |
将库地址配置到 nginx.conf
中这个位置
1 | http{ |
其他参数
- $geoip_country_code; - 两个字母的国家代码,如:”RU”, “US”。
- $geoip_country_code3; - 三个字母的国家代码,如:”RUS”, “USA”。
- $geoip_country_name; - 国家的完整名称,如:”Russian Federation”, “United States”。
- $geoip_region - 地区的名称(类似于省,地区,州,行政区,联邦土地等),如:”30”。 30代码就是广州的意思
- $geoip_city - 城市名称,如”Guangzhou”, “ShangHai”(如果可用)。
- $geoip_postal_code - 邮政编码。
- $geoip_city_continent_code。
- $geoip_latitude - 所在维度。
$geoip_longitude - 所在经度。
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章
