<div>îÁÐÉÓÁÌÉ ÎÅÂÏÌØÛÏÊ ËÏÎÆÉÇ, ËÏÔÏÒÙÊ ÐÏÚ×ÏÌÑÅÔ nginx'Õ ÏÐÒÅÄÅÌÑÔØ "ÐÒÁ×ÉÌØÎÙÊ" memcached ÓÅÒ×ÅÒ.<br></div><div>ìÏÇÉËÁ ÏÐÒÅÄÅÌÅÎÉÑ ÓÅÒ×ÅÒÁ ×ÚÑÔÁ ÉÚ ÍÏÄÕÌÑ Cache::Memcached.</div><div>ëÌÀÞÏÍ ÄÌÑ ÍÅÍËÅÛÁ ÓÌÕÖÉÔ md5 ÏÔ url'Á ÓÔÒÁÎÉÃÙ.</div>
<div><br></div><div>îÁ ÐÒÏÄÁËÛÎ ËÏÎÆÉÇ ÐÏËÁ ÎÅ ×ÙËÁÔÙ×ÁÌ. îÁ ÔÅÓÔÏ×ÙÈ ÓÅÒ×ÅÒÁÈ ÒÁÂÏÔÁÅÔ ÈÏÒÏÛÏ.</div><div><br></div><div>ðÏÄÓËÁÖÉÔÅ ÍÏÇÕÔ ÌÉ ÂÙÔØ ÐÏÄ×ÏÄÎÙÅ ËÁÍÎÉ?</div><div>íÏÖÅÔ ËÔÏ ÕÖÅ ÐÉÓÁÌ ÐÏÄÏÂÎÙÅ ÒÅÛÅÎÉÑ</div><div><br>
</div><div>http {<br>š š</div><div>š š šperl_set $md5_uri 'sub {<br>š š         šuse Digest::MD5 qw(md5_base64);<br>š š šmy $r = shift;<br>š šš my $uri=$r->uri;<br>š š šmy $args=$r->args;<br>š š šif ($args){<br>š šš š $uri=$uri."?".$args;<br>
š š š}<br>š š š return md5_base64($uri);<br>š š }';<br>                 <br> š š šperl_set $memcached_index '<br>š š šsub {<br>š        š š šuse String::CRC32;<br>š        š š šmy $r = shift;<br>                š š š šreturn (((crc32($r->variable("md5_uri")) >> 16) & 0x7fff) % 2); # 2 - ËÏÌ-×Ï ÓÅÒ×ÅÒÏ× memcached<br>
š š }<br>š š';<br></div><div><br></div><div>š šserver {<br>š š šlisten 3666;<br>š š šserver_name 172.28.144.68;<br></div><div><br></div><div>š š šlocation / {<br>š š š set $memcached_key $md5_uri;<br>
š š š if ($memcached_index = 0){<br>š        š š š šmemcached_pass <a href="http://172.28.144.52:11211">172.28.144.52:11211</a>;        š<br>š š š }<br>š š š if ($memcached_index = 1){<br>š        š š š šmemcached_pass <a href="http://172.28.144.53:11211">172.28.144.53:11211</a>;        š<br>
š š š }<br>         <br>š š š error_page 404 @fallback;</div><div>š š }</div><div>š }<br>        }<br></div><div><br></div>