Ruby on rails 为什么nginx+;memcache损坏了我的响应体?

Ruby on rails 为什么nginx+;memcache损坏了我的响应体?,ruby-on-rails,memcached,nginx,Ruby On Rails,Memcached,Nginx,我正在memcache中缓存一些网页。当我直接从缓存中读取页面时,页面的格式如下所示 !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"-:-- 0 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

我正在memcache中缓存一些网页。当我直接从缓存中读取页面时,页面的格式如下所示

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"-:--     0
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

  <head>
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
     �{
        "    ETag"'"16bb9f51667d334aa4e7663ca28d308a""X-Runtime177"Content-Type"text/html; charset=utf-8"Content-Length"5428"Set-Cookie""Cache-Control"(private, max-age=0, must-revalidate"4<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
有人知道为什么响应会损坏吗?

!愚蠢的开发者问题!
有两个错误

(a) 我将响应头和主体存储在memcache中,然后在nginx规则中添加头。在memcache中只存储响应主体就消除了大部分问题

(b) 我以Ruby的封送处理格式(memcache客户端中的默认设置)存储响应—使用简单的Ruby客户端读取memcache的内容隐藏了一个事实,即nginx无法直接使用该格式

希望有机会帮助别人


Chris

您使用的旋度参数是什么?除了http正文(页面)之外,您可能还要求查看http头。当你说“直接从缓存读取页面”是什么意思?使用浏览器还是卷发?@Larry谢谢,这个问题有问题-我应该清楚地说明,问题发生在使用浏览器或卷发时。从memcache读取数据是通过客户端进行的。memcache的内容绝对正确。
     set $memcached_key $cookie__app_session$uri;
     memcached_pass     localhost:11211;
     default_type       text/html;
         error_page         404 502 /fallback$uri;