nginx geoip uwsgi 설정

1652 단어 nginxuwsgigeoip
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"

여기 보니까 물 어 봐 야 될 것 같 아 요.저 는 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.

좋은 웹페이지 즐겨찾기