nginx geoip uwsgi 配置

把nginx的GEOIP模块配置了一下 过程很简单  下载GEOIP模块 编译安装 编译nginx 在configure的时候加geoip的编译选项 重启nginx ook  具体过程可以参考[nginx install geoip]

我是在本地搭建的测试环境 需要模拟一下外网的环境 在nginx主配置文件里加上

set_real_ip_from 192.168.100.1;
set_real_ip_from 192.168.1.76;
set_real_ip_from 172.16.1.16;
real_ip_header X-Forwarded-For;

加上这个的目的是 可以使用curl来模拟外网地址 一下是curl命令:

curl http://192.168.1.76:8000/ --header "X-Forwarded-For: 123.123.123.123"

看到这里 你可能要问了 我怎么来确认geoip是否工作了呢? 我这里用了python flask写了一个简单的app 然后用uwsgi来管理

from flask import Flask, request

app = Flask(__name__)
app.debug = True

@app.route("/")
def hello():
    str_t = str(request.environ)

    if all(request.environ.get(key, None) for key in ('GEOIP_COUNTRY_CODE',
        'GEOIP_COUNTRY_CODE3', 'GEOIP_COUNTRY_NAME')):
        str_t = 'code: %s code3: %s name: %s' % (
            request.environ['GEOIP_COUNTRY_CODE'],
            request.environ['GEOIP_COUNTRY_CODE3'],
            request.environ['GEOIP_COUNTRY_NAME'])

    return str_t

if __name__ == "__main__":
    app.run()

uwsgi的配置就不要多讲了吧 上述代码中 用到了request.environ 这些变量可以在nginx配置里设置 配置文件如下

uwsgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
uwsgi_param GEOIP_COUNTRY_CODE3 $geoip_country_code3;
uwsgi_param GEOIP_COUNTRY_NAME $geoip_country_name;

ook了

你可能感兴趣的:(nginx,uwsgi,geoip)