Ruby on rails 为什么nginx+;memcache损坏了我的响应体?
我正在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">
!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;