<div>îÁÐÉÓÁÌÉ ÎÅÂÏÌØÛÏÊ ËÏÎÆÉÇ, ËÏÔÏÒÙÊ ÐÏÚ×ÏÌÑÅÔ nginx&#39;Õ ÏÐÒÅÄÅÌÑÔØ &quot;ÐÒÁ×ÉÌØÎÙÊ&quot; memcached ÓÅÒ×ÅÒ.<br></div><div>ìÏÇÉËÁ ÏÐÒÅÄÅÌÅÎÉÑ ÓÅÒ×ÅÒÁ ×ÚÑÔÁ ÉÚ ÍÏÄÕÌÑ Cache::Memcached.</div><div>ëÌÀÞÏÍ ÄÌÑ ÍÅÍËÅÛÁ ÓÌÕÖÉÔ md5 ÏÔ url&#39;Á ÓÔÒÁÎÉÃÙ.</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 &#39;sub {<br>š š           šuse Digest::MD5 qw(md5_base64);<br>š š šmy $r = shift;<br>š šš my $uri=$r-&gt;uri;<br>š š šmy $args=$r-&gt;args;<br>š š šif ($args){<br>š    šš š $uri=$uri.&quot;?&quot;.$args;<br>
š š š}<br>š š š return md5_base64($uri);<br>š   š }&#39;;<br>                      <br>    š   š šperl_set $memcached_index &#39;<br>š    š šsub {<br>š        š š šuse String::CRC32;<br>š        š š šmy $r = shift;<br>                š š š šreturn (((crc32($r-&gt;variable(&quot;md5_uri&quot;)) &gt;&gt; 16) &amp; 0x7fff) % 2); # 2 - ËÏÌ-×Ï ÓÅÒ×ÅÒÏ× memcached<br>
š    š }<br>š š&#39;;<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>