Проблема при получении данных определённой длины от Nginx + Memcached

Brazzford nginx-forum at nginx.us
Mon May 26 13:47:08 UTC 2014


Здравствуйте! Я изучаю связку Nginx+Memcached+Apache/PHP. nginx.conf у меня
стоит по умолчанию, а виртуальный хост имеет такие настройки:

server {
        listen 80;
    server_name localhost;

    root /home/brazzford/nginx-www/;
    index index.php;

    location / {
        # All POST request send to backend
        if ($request_method = POST) {
            proxy_pass http://localhost:8080;
            break;
            }

        # Enable SSI
        ssi on;
        default_type text/html;

        # Check Memcached
        set $memcached_key "site:$request_uri";
        memcached_pass localhost:11211;
        memcached_buffer_size 100k;
        proxy_intercept_errors  on;
        error_page 404 502 = @process;
    }

    # Cache miss
    location @process
    {
        proxy_pass http://localhost:8080;
        ssi on;
    }

    # Cache static
    location ~*
.(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|html|htm|wml)$
{
    root /var/www;
    expires 365d;
    }
}

У меня есть тестовый PHP скрипт:

<?php
    require "memc_connection.inc.php";

        $uriString = $_SERVER['REQUEST_URI'];

        $key = "site:" . $uriString;
        $data = 
        "
            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    
            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        ";

        $set_result = $memc->set($key, $data);
        if($set_result)
            echo "SUCCESS!";
        else
            echo $memc->getResultMessage();
?>

И всё работает как надо, то есть сначала я от Apache получаю "SUCCESS", а
потом от Nginx и Memcached "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa". Но кода я добавляю к переменной
$data "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", то от Nginx я получаю
такую бессмыслицу "xњгвдL$prЇ–Ґ@cn-т". То есть, проблема начинается после
того, как хранимые данные достигают определённого размера. Memcached+Apache
работает правильно, значит проблема в Nginx. Может нужно какой-то параметр
изменить? Пробовал менять    memcached_buffer_size, как видите поставил на
100к, и всё равно не помогает.

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



Подробная информация о списке рассылки nginx-ru