I have a php script that writes the whole page output (using output buffering and PECL memcache module) to memcache using keys such as: $host$request_uri
[code]
<?php
function memcache_ob($output) {
$time_start = microtime();
$cache_ttl = 300;
$key = trim($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211);
if ($cached = $memcache->get($key))
return str_replace('</body>', "<!-- From memcache in ". round(microtime() - $time_start, 4) . " (" . date('r') . ") -->\n</body>", $cached);
$output = str_replace('</body>', "<!-- Generated on " . date('r') . " / key: " . $key . " -->\n</body>", $output);
$memcache->set($key, $output, false, $cache_ttl);
return $output;
}
ob_start('memcache_ob');
?>
[/code]
In nginx, I have the following:
[code]
location ~ \.php$ {
set $memcached_key $host$request_uri;
memcached_pass 127.0.0.1:11211;
default_type text/html;
error_page 404 502 504 405 = @cache_miss;
}
location @cache_miss {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
[/code]
The problem is that I'm getting garbled text returned by nginx, which looks like this:
[code]
x�å\{sŪ¶²’;�¹ße;�=5õ ��meŅ<Z÷$�;IĻÉt4 I“ł
AZÖķéw¹�å~²»»�)J�lŁ�{ŚŪ¶SS �Åīļ·�}õņŻ�ó��¾bćÄ÷z’µs��ŁµļņŲ'IŌT&�IyR/�ńØR;88Ø\c�9n|lxIl0�£cCę�3�źÜéķynpÉbį�d2õ���Ų8Ćć�®Z&<qķņeČ$N/�0�e;ō+�Č“Ć AR�¼tä�|7p�Ó
ü©<ņ$cįY)VS”6Ė¶�O¹śĒ5ė mµZ�ŚA�%ÓH�q�T C�łĀq9�iĒB%VįįŁ��bĪ~ÅUj�ÉŲŽVÜĄöR¤æ�ÆV
Źr�!łāK*ā©ž£ß/t=
ćdznhĘÜ1�ĀQj.äĪįüŚōBī�~�ü5�ā�o/obN»óæ”DAĶ�ÕītJ½£�ŅŲÄ�#_$�”ŹLń%uÆ��ŖzóTl0ŻŲ±AŗFŁ�=ę±Éń�ó×fĒ�aĮz7ńDļ;/±ē�0MŲ'1Ųg/�tGć�Ć@\ö:MŅX°pųæ’s�<W�Ż`Ä�ś�ćCĘžQżØ¢j�ŗ�ģģ¬ÖxåøÉ�÷'�2�G�ēŚ0ÖaP�„óķ5:�=6Ž�½4�egNsĆ {Łåh=�ŅŁ¬�7ń9X��ɲö
ÆU»··U“�BŃ2ōXŃ7ŻĄ×%Ż�RQ3¾z£å(4®÷Aā�DĢį}a8?�±s)Y½\3ßæh�µv£Q[č�I�Į�ńē]�ZV£SZP¶Į\h6S�ėó�Ø\�*ķN}ŻfģC~�µ�į�Ę�>�įȦta^�Ųź!+Øąōćė/�~žCżĖONķ�ę�Ż¼žā�ņļžõѶ�óóēW?æ��}2r°ńÆLó³;d^"ŲÉ+ÖłµwōÕg8īšWÓ$'�õ�C¦8ą�Xn¦rĪL�£ĖŽ��±×B8w)gy*�÷Ķ�Ą£Ü¾\ßīUG¢x�Ī�Ł�@5šgāĒ½b®c¦&h:1„ŖG�D�(Ź�ōūÉæC£w a0źĶūæN<ŖpU�š{�)¤®1�+�z ¢Č`ŹžĮeŠÄ^r�ąB
P%ŖDų�®z�M�»��;§;ģ� �RÆ:Ķ#0Ł>X�ĻšÉÄ'ž�2ŽŁ¹l�Qō³ÜP�¦��Ŗūlę��z�ś/fRÄ`ŪBī3;�I
+�Č�|Įč�éLØ”£�ē®!rź�c0’~�a�N Ģõd5°³®Äė
×l7×�$�Ća'r
[/code]