nginx添加geoip支持ip转经纬度配置笔记

线上项目要做系统都BI统计,所以需要给nginx添加geo模块。

折腾笔记如下:

  1. 最近配置nginx的时候,发现有个模块在编译的时候没有考虑到。
    由于nginx模块都是编译到nginx执行文件中的,所以我们添加模块的话需要重新编译。


  2. 2
    3
    4
    5
    6
    7
    8
    shell > cd nginx - 1.4.7
    shell > . / configure --重新编译的参数
    shell > make
    make完成之后,不要 make install,直接把编译好的 nginx文件替换原来的 nginx文件即可。
    shell > service nginx stop
    shell > cp / usr / local / nginx / sbin / nginx / usr / local / nginx / sbin / nginx .bak
    shell > cp objs / nginx / usr / local / nginx / sbin / nginx
    shell > service nginx start

2
3
4
5
6
7
8
3,编译生成nginx
从github上下载tengine

https://github.com/alibaba/tengine/tree/tengine-2.0.0

4,下载后,在tengine目录下输入:
./configure --prefix=/home/mydir --with-http_concat_module --with-http_addition_module --with-http_dav_module --with-http_gzip_static_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module--with-http_geoip_module

点击enter执行后,如果出现这个错误:
./configure: error: the GeoIP module requires the GeoIP library.
You can either do not enable the module or install the library.

则要先安装GeoIP libaray,方法如下:
yum install GeoIP
重新执行一次configure

5,make ,在obj目录下会有编译生成的nginx

6,make 千万别make install,否则就覆盖安装了

make完之后在objs目录下就多了个nginx,这个就是新版本的程序了

备份旧的nginx程序

cp /usr/local/nginx/sbin/nginx/usr/local/nginx/sbin/nginx.bak

把新的nginx程序覆盖旧的

cp objs/nginx /usr/local/nginx/sbin/nginx

测试新的nginx程序是否正确

/usr/local/nginx/sbin/nginx -t

nginx: theconfiguration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx:configuration file /usr/local/nginx/conf/nginx.conf test issuccessful

平滑重启nginx

/usr/local/nginx/sbin/nginx -s reload

查看ngixn版本极其编译参数

/usr/local/nginx/sbin/nginx -V

----------php内直接读取geocity --
1,安装

GeoIP2 PHP API

https://github.com/maxmind/GeoIP2-php

2,下载数据包
http://dev.maxmind.com/geoip/geoip2/geolite2/

3,使用
http://blog.csdn.net/johnnycode/article/details/42028841

你可能感兴趣的:(nginx添加geoip支持ip转经纬度配置笔记)