<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">List,<div><br></div><div>I'm experiencing some problems with FastCGI cache and nginx/1.0.4 from stable PPA on Ubuntu Lucid.<br>
<br>
In short, it seems that <i>sometimes </i>the FastCGI cache is getting corrupted somehow - Nginx will serve sane headers from cache, but then the connection will seem to hang, with no body returned until the request is timed out by the client (apparently it'll hang indefinitely).</div><div><br></div><div>For example, headers will appear good:</div><div><br></div><div><div>HTTP/1.1 200 OK</div><div>Server: nginx</div><div>X-Cache-Status: HIT</div><div>Cache-Control: public, max_age=300</div><div>Content-Type: text/html; charset=utf-8</div><div>Date: Thu, 17 Nov 2011 09:58:26 GMT</div><div>Expires: Thu, 17 Nov 2011 10:02:46</div><div>Etag: 611a2b5dcde004cf68ffd56345584d40</div><div>Connection: close</div><div>Last-Modified: Thu, 17 Nov 2011 09:57:46</div><div>Transfer-Encoding: Identity</div><div><br></div></div><div>…but then the connection sits there without returning the body.</div><div><br></div><div>Once nginx returns one "bad" response (as described above), all subsequent requests for the same (cached) resource have the same problem. Other cached resources seem to work as normal, and have experienced it twice in the past 24 hours.</div><div><br></div><div>The only resolution I've found so far is to junk my cache folder and bounce the nginx service.</div><div><br></div><div>Here's what my vhost config looks like:</div><div><br></div><div><div>server {</div><div><br></div><div>  listen 80 default;</div><div>  server_name <a href="http://example.com">example.com</a>;</div><div><br></div><div>  server_tokens off;</div><div><br></div><div>  root      /home/user/example.com/web;</div><div>  index     index.php;</div><div><br></div><div>  access_log  /dev/null;</div><div>  error_log   /var/log/nginx/error.log;</div><div><br></div><div>  location / {</div><div><br></div><div>    if (-f $request_filename) {</div><div>      expires 3h;</div><div>      break;</div><div>    }</div><div><br></div><div>    rewrite ^(.*) /index.php last;</div><div>  }</div><div><br></div><div>  location ~ (.*\.php)($|/) {</div><div>    set  $script   $1;</div><div>    set  $path_info  "";</div><div><br></div><div>    if ($uri ~ "^(.+\.php)(/.+)") {</div><div>        set  $script   $1;</div><div>        set  $path_info  $2;</div><div>    }</div><div><br></div><div>    fastcgi_pass 127.0.0.1:9000;</div><div><br></div><div><br></div><div>    include     fastcgi_params;</div><div>    fastcgi_read_timeout 180;</div><div>    fastcgi_param   PATH_INFO $path_info;</div><div>    fastcgi_param   SCRIPT_FILENAME $document_root$script;</div><div>    fastcgi_param   SCRIPT_NAME $script;</div><div><br></div><div>    fastcgi_pass_header  Set-Cookie;</div><div><br></div><div>    fastcgi_cache_methods GET HEAD;</div><div>    fastcgi_cache fcgi-cache;</div><div>    fastcgi_cache_key canimationlive$request_uri;</div><div>    fastcgi_cache_valid 200 1h;</div><div>    fastcgi_cache_min_uses 1;</div><div>    fastcgi_cache_use_stale error timeout http_500 updating;</div><div><br></div><div>    add_header X-Cache-Status $upstream_cache_status;</div><div>  }</div><div>}</div></div><div>## --end</div><div><br></div><div>Here's what the fcgi-cache definition looks like:</div><div><br></div><div><div>fastcgi_cache_path   /var/www/cache levels=1:2</div><div>           keys_zone=fcgi-cache:10m</div><div>           max_size=512m</div><div>           inactive=28d;</div></div><div><br></div><div>I've just upgraded to nginx 1.0.9 (also from PPA), and noticed in the changelog for versions 1.0.4 and 1.0.5 a "Bugfix: "stalled cache updating" alert" - is this the same problem? If so, the above may well be null and void.</div><div><br></div><div>Thanks in advance,</div><div><br></div><div>Ben</div><div><br></div><div><br></div></body></html>