피가

2012-11-23 1 views
0

이것은 내가 작업하고있는 모듈입니다 : http://wiki.nginx.org/HttpGeoipModule 내가이의 nginx의 설정에 구성되어 있기 때문에,보고를해야하지만 선택의 여지가없는 것 같습니다 uwsgi 수있는에서피가

모든 페이지에서 지오픽을 실행 한 다음 필요할 때만 변수를 수집하고 사용하십시오. 나는 오히려있을 것입니다 성능의 관점에서

필요할 때 그래서 쿠키 나 세션에서, ONLY로 캐쉬를 GeoIP가 요청하고 사이트를 속도를 다시 요청하지.

이 가능한 경우 수있는 사람이 말해 줄 수 있나요?

답변

2

을 차라리이 필요로 할 때 내가 쿠키 나 세션에서, ONLY로 캐쉬를 GeoIP가 요청하고 속도를 다시 요청하지 않은 것 . 가능하면 누구에게 말해 줄 수 있습니까? '

예, 가능합니다. GeoIP가 데이터베이스가 (판독 구성 단계에서) 메모리에 저장하고 nginx를 매우 빠르게 조회를하고있다 그러나 성능 관점에서, 당신은 걱정하지한다. 당신은 완전히 틀렸다

set $country $cookie_country; 

if ($country == '') { 
    set $country $geoip_country_code; 
    add_header Set-Cookie country=$geoip_country_code; 
} 

uwsgi_param GEOIP_COUNTRY $country; 
-2

아니, 당신의 nginx 수요 만에 GeoIP가 조회를 수행 할 수 없습니다. 당신이 geoip_country 또는 geoip_city 지시어를 정의하기 때문에, Nginx에 대답은 나중에 여부 사용 여부, GeoIP가 데이터베이스에서 데이터를 요청합니다. 하지만 nginx없이 GeoIP 데이터를 가져올 수 있습니다. 즉, 애플리케이션과 직접 연결할 수 있습니다. 파이썬 GeoIP가 lib 디렉토리에 대해 살펴 보자 성능의 관점에서 http://dev.maxmind.com/geoip/downloadable#Python-5

+1

:

어쨌든 당신이 원한다면, 당신은 같은 것을 사용할 수 있습니다. Nginx의 변수는 필요시에만 평가됩니다. '$ geoip_ *'변수가 요청 처리 중에 사용되지 않으면 geoip db가 조회되지 않습니다. – VBart

+0

내 페이지에서 geoip 변수를 호출하지 않으면 geoip 모듈이 전혀 실행되지 않습니까? 페이지로드가 걱정되므로 더 많은 페이지를 불러올 수 있습니다. 페이지가로드되지 않거나 느려지는 것을 알고 싶습니다. – Jimmy

+0

* 내 페이지에서 geoip 변수를 호출하지 않으면 geoip 모듈이 전혀 실행되지 않습니까? * 예, 정확하게. – VBart