понедельник, 24 августа 2015 г.

Squid и кэширование 2gis

Знайте, что вы кэшируете.

Когда вы собираетесь кэшировать динамический контент, вы должны знать, что в точности в URL будет постоянной частью. Соответственно, именно это - после тщательного наблюдения - вы и должны кэшировать.

Да, вас подстерегает соглашение о реверс-нижиниринге. Но в большинстве случаев, у вас просто нет выхода. Эти упыри скрывают схему URL. Вам надо ее понять.

id, как правило, уникальный идентификатор контента (для YT это не так. Вешайтесь.) . sig, как правило, сигнатура доступа. И вы можете ее игнорировать.

Соответственно, если вы имеете Squid 3, и штатный редиректор Store ID, вы пишете примерно следующее:

   
   
 acl store_rewrite_list_web url_regex "/usr/local/squid/etc/url.rewrite_web"  
   
 cat /usr/local/squid/etc/url.rewrite_web:  
 # 2gis  
 tile[\d]\.maps\.2gis\.com  
   
 cat /usr/local/squid/etc/squid.conf:  
 # Storeurl rewriter  
 store_id_program /usr/local/squid/libexec/storeid_file_rewrite /usr/local/squid/etc/storeid.conf  
 store_id_children 32 startup=0 idle=1 concurrency=0  
 # Store ID access  
 store_id_access deny !GET  
 store_id_access allow store_rewrite_list  
 store_id_access allow store_rewrite_list_web  
 store_id_access allow store_rewrite_list_web_cdn  
 store_id_access deny all  
 store_id_bypass off  
   
 cat /usr/local/squid/etc/storeid.conf:  
   
 tile[\d]\.maps\.2gis\.com\/tiles\?x=([^&]+).*&y=([^&]+).*&z=([^&]+).*&v=([^&]+)          http://maps2gis.squidinternal/$1/$2/$3/$4  

Знайте, что вы кэшируете.