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模块识别客户端地区

