Nginx使用geoip模块识别客户端地区
前言
想根据IP
获取用户所在地点有各种方案, 今天来介绍一下比较简单和无侵入性的一种: 通过nginx
插件自动识别IP
地区
Dockerfile
现在的nginx
镜像里已经都自带了ngx_http_geoip_module.so
模块, 位于/etc/nginx/modules/
目录下, 所以我们只需要参考文档, 将需要的GeoIP.dat
数据包打入镜像, 并配置好参数即可
1 | FROM nginx:stable |
nginx 配置
1 | # nginx.conf |
配置完成之后启动nginx
镜像, 就可以在后端转发的服务header
中获取到用户地区了
结论
这种方案是对后端比较友好的一种方式, 由于nginx
一般在负载均衡的最前端, 所以可以拿到最准确的用户IP
, 对后端也没有侵入性修改, 而且由于是nginx
本地数据提供的解析, 非常方便扩容, 数据的更新和维护也比较方便, 是一种比较轻量的解决方案
参考文档: http://nginx.org/en/docs/http/ngx_http_geoip_module.html
Nginx使用geoip模块识别客户端地区