Memcache and garbled text returned by Nginx

kaspars nginx-forum at nginx.us
Tue Feb 15 18:36:02 MSK 2011


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('', "<!-- From memcache in ". round(microtime() -
$time_start, 4) . " (" . date('r') . ") -->\n", $cached);
	
	$output = str_replace('', "<!-- Generated on " . date('r') . " / key: "
. $key . " -->\n", $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Ņ�įȦta^�Ų
ź!+Øąōćė/�~žCżĖONķ�ę�Ż¼žā�ņļžõѶ�óóēW?æ��}2r°ńÆLó³;d^"ŲÉ+ÖłµwōÕg8īšWÓ$'�õ�C¦8ą�Xn¦rĪL�£ĖŽ��±×B8w)gy*�÷Ķ�Ą£ܾ\ßīU
G¢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]

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,175470,175470#msg-175470




More information about the nginx mailing list