[英]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_country或geoip_city指令,因此無論以后是否使用答案,nginx都會從GeoIP數據庫請求數據。 但是,您完全不需要nginx即可獲取GeoIP數據,即直接使用您的應用程序。 看看python geoip lib: http : //dev.maxmind.com/geoip/downloadable#Python-5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.