В RoR есть вроде спец опция отключающая его механизмы оптимизации работы с мемкешд после чего он должен писать без выкрутасов. Дебагали след образом - мемкеш демон запущен с -vv чтоб видеть запросы и ответы, запросы давали правда вместо telnet по nc вроде. В общем получается что nginx выдаёт приблизительно то же что и nc, попробую ковырять API рубивское
<br><br><br><div><span class="gmail_quote">04.06.07, <b class="gmail_sendername">Boguk Maxim</b> &lt;<a href="mailto:astar@rambler-co.ru">astar@rambler-co.ru</a>&gt; написал(а):</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">




<div>
<div dir="ltr" align="left"><font size="2">Я бы попробовал руками сделать telnet 
memcached_server memcached_ip<br>и сделать руками<br>get имя_ключа<br><br>И 
посмотреть есть там лишние символы в начале данных или нет.<br><br>То как 
сериализует и десериализует RoR данные для memcached знает только он и его 
авторы. Не<span> </span>исключено что в первые 
несколько байт идут какие то служебные флаги/данные про которые nginx ничего не 
знает.<br><br>Я сильно подозреваю что проблема именно в этом.<br><br>PS: если не 
секрет каким образом проводился &#39;дебаг мемкаши&#39; ?</font></div>
<div>&nbsp;</div>
<div><font size="2"></font>&nbsp;</div>
<blockquote style="border-left: 2px solid rgb(0, 0, 255); padding-left: 5px; margin-left: 5px; margin-right: 0px;">
  <div dir="ltr" align="left" lang="ru">
  <hr>
  <font face="Tahoma" size="2"><b>From:</b> <a href="mailto:owner-nginx-ru@mail.sysoev.ru" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">owner-nginx-ru@mail.sysoev.ru</a> 
  [mailto:<a href="mailto:owner-nginx-ru@mail.sysoev.ru" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">owner-nginx-ru@mail.sysoev.ru</a>] <b>On Behalf Of </b>TDz 
  TDz<br><b>Sent:</b> Sunday, June 03, 2007 7:18 PM<br><b>To:</b> 
  <a href="mailto:nginx-ru@sysoev.ru" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">nginx-ru@sysoev.ru</a><br><b>Subject:</b> Re: bugreport: при чтении из memcached 
  препендятся случайные символы<br></font><br></div><div><span class="e" id="q_112f5ee5a82ee4c3_1">
  <div></div>Лицезреть проблему можно на <a href="http://test.avaxhome.ru/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://test.avaxhome.ru/</a><br>Там почти всё 
  из мемкеши и соответственно кракозябли везде, ситуация не меняется при 
  использовании apt-get версий nginx/memcached <br>Данные в мемкеш пишет само 
  приложение (Ruby on Rails), оно же читает их верно оттуда (без символов), 
  дебаг мемкаши тоже никаких сомволов лишних не показал<br>Вот 
  конфиг:<br><br>user www-data;<br>worker_processes&nbsp; 
  8;<br><br>error_log&nbsp; 
  logs/error.log;<br>pid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  logs/nginx.pid;<br><br>events {<br>&nbsp;&nbsp;&nbsp; worker_connections&nbsp; 
  2048;<br>&nbsp;&nbsp;&nbsp; use epoll;<br>}<br><br>http 
  {<br>&nbsp;&nbsp;&nbsp; include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  /etc/nginx/mime.types;<br>&nbsp;&nbsp;&nbsp; default_type&nbsp; 
  application/octet-stream; <br><br>&nbsp;&nbsp;&nbsp; access_log 
  off;<br><br>&nbsp;&nbsp;&nbsp; 
  sendfile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on;<br>&nbsp;&nbsp;&nbsp; 
  tcp_nopush&nbsp;&nbsp;&nbsp;&nbsp; on;<br><br>&nbsp;&nbsp;&nbsp; 
  keepalive_timeout&nbsp; 65;<br>&nbsp;&nbsp;&nbsp; 
  tcp_nodelay&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  on;<br>&nbsp;&nbsp;&nbsp; gzip&nbsp; off;<br><br><br>&nbsp;&nbsp;&nbsp; ## 
  rails settings<br>&nbsp;&nbsp;&nbsp; upstream mongrel <br>&nbsp;&nbsp;&nbsp; 
  {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server <a href="http://172.16.0.2:8000" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">172.16.0.2:8000</a>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  server <a href="http://172.16.0.2:8001" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">172.16.0.2:8001</a>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  server <a href="http://172.16.0.2:8002" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">172.16.0.2:8002</a> 
  ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server <a href="http://172.16.0.2:8003" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">172.16.0.2:8003</a>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  server <a href="http://172.16.0.1:8000" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">172.16.0.1:8000</a>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  server <a href="http://172.16.0.1:8001" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">172.16.0.1:8001</a>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  server <a href="http://172.16.0.1:8002" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">172.16.0.1:8002</a>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  server <a href="http://172.16.0.1:8003" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">172.16.0.1:8003</a>;<br>&nbsp;&nbsp;&nbsp; 
  }<br><br>&nbsp;&nbsp;&nbsp; server<br>&nbsp;&nbsp;&nbsp; 
  {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listen 
  80;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server_name <a href="http://test.avaxhome.ru" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">test.avaxhome.ru</a>;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  # setting for backend proxying<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  proxy_set_header Host 
  $http_host;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_set_header 
  X-Real-IP $remote_addr;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
  <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_intercept_errors 
  off;<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # static 
  content<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location ~* 
  ^/(javascripts|stylesheets|images)/.*$ 
  {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root 
  /srv/www/localhost/avaxhome/current/public;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  expires 30d; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  }<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # fully dynamic 
  content<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location ~* 
  ^/(private_messages|news_mgr|search|login|comments).*$ 
  {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  proxy_pass <a href="http://mongrel" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://mongrel</a>; 
  break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } 
  <br><br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # cached dynamic 
  content<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location / 
  {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  default_type 
  text/html;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  # POST requests always go to 
  backend<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  if ($request_method = POST ) 
  {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  proxy_pass <a href="http://mongrel" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://mongrel</a>; 
  break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  set $memcached_key 
  $uri;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  memcached_pass <a href="http://172.16.0.2:11211" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">172.16.0.2:11211</a>;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  error_page 404 = /backend; #key not found 
  <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  error_page 502 = /backend; #mem not 
  responding<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  }<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # backend 
  settings<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location = /backend 
  {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  internal;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  proxy_pass <a href="http://mongrel" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://mongrel</a>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  }<br>&nbsp;&nbsp;&nbsp; }<br>}<br><br><br>
  <div><span class="gmail_quote">03.06.07, <b class="gmail_sendername">Igor 
  Sysoev</b> &lt;<a href="mailto:is@rambler-co.ru" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">is@rambler-co.ru</a>&gt; 
  написал(а):</span> 
  <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On 
    Sun, Jun 03, 2007 at 08:42:48AM +0400, Vladimir V. Perepelitsa 
    wrote:<br><br>&gt; А случаем у тебя не Client-Transfer-Encoding: chunked? 
    <br><br>Да, похоже на чанки. В конце ответа всегда должен быть виден 
    0.<br>Вопрос в том, как эти ответы попали в memcached.<br><br>&gt; On 
    6/1/07, TDz TDz &lt;<a href="mailto:tdz@modestus.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">tdz@modestus.org</a>&gt; wrote: <br>&gt; 
    &gt;Хеллоу хотел сообщить о странном поведении nginx<br>&gt; &gt;после 
    перехода на более новую версию nginx при чтении напрямую из 
    memcached<br>&gt; &gt;перед самой информацией выдаются 2 случайных символа, 
    для каждой страницы <br>&gt; &gt;они не меняются при рефреше но от страницы 
    к странице отличаются<br>&gt; &gt;<br>&gt; &gt;nginx version: 
    nginx/0.5.20<br>&gt; &gt;built by gcc 4.1.2 20061115 (prerelease) (Debian 
    4.1.1-21 ядро <a href="http://2.6.20.4" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">2.6.20.4</a><br>&gt; &gt;оптимизация 
    под Opteron) из нестандартных configure arguments:<br>&gt; 
    &gt;--with-cc-opt=-O3<br>&gt; &gt;<br>&gt; &gt;Ошибок в логе на этот счёт 
    нет. Проверял данные в мемкеше чистые<br>&gt; &gt;<br>&gt; &gt;Я откачусь на 
    более старую версию - если это не known issue подскажите<br>&gt; 
    &gt;какие<br>&gt; &gt;параметры нужно снять для анализа 
    проблемы<br><br><br>--<br>Игорь Сысоев<br><a href="http://sysoev.ru" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://sysoev.ru 
</a><br><br></blockquote></div><br></span></div></blockquote></div>
</blockquote></div><br>