簡體   English   中英

避免在每個頁面上運行GeoIP

[英]Avoid running GeoIP on every page

這是我正在使用的模塊: http : //wiki.nginx.org/HttpGeoipModule

據我所知,由於它是在nginx config和uwsgi上配置的,因此似乎別無選擇,只能在每個頁面上運行geoip,然后僅在需要時收集和使用該變量。

從性能的角度來看,我寧願擁有它,因此僅在需要時才請求geoip,將其緩存在cookie或會話中,然后不再再次請求以加快站點速度。

有人能告訴我這是否可能嗎?

從性能的角度來看,我寧願擁有它,因此僅在需要時才請求geoip,將其緩存在cookie或會話中,然后不再再次請求以加快站點速度。 誰能告訴我這是否可能?

是的,有可能。 但是從性能角度來看,您不必擔心,因為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;

不,您不能讓Nginx僅按需執行GeoIP查找。 由於您定義了geoip_countrygeoip_city指令,因此無論以后是否使用答案,nginx都會從GeoIP數據庫請求數據。 但是,您完全不需要nginx即可獲取GeoIP數據,即直接使用您的應用程序。 看看python geoip lib: http : //dev.maxmind.com/geoip/downloadable#Python-5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM