Назад | Перейти на главную страницу

Получение ошибки тайм-аута подключения при использовании модулей HttpRedis и eval для NGiNX

Я пытаюсь понять ценность Redis. Так что я могу повторить это через переменную. Вот почему я использую блок eval. Но почему-то получаю ошибки.

При перезагрузке я не получаю никаких ошибок конфигурации.

Вот ошибки, которые я получаю после попытки загрузить страницу (nginx error.log):

2198 2013/05/15 19:46:00 [info] 18255#0: *22 client timed out (110: Connection timed out) while reading client request line, client: [...]  server: [...]
2199 2013/05/15 19:46:00 [info] 18255#0: *23 client timed out (110: Connection timed out) while reading client request line, client: [...], server: [...]
2200 2013/05/15 19:47:40 [info] 18345#0: *28 client timed out (110: Connection timed out) while reading client request line, client: [...], server: [...]

Моя конфигурация:

location = /session {
            eval $session {
                    set $laravel "laravel:";
                    set $redis_key $laravel$cookie_session;
                    redis_pass [...]:6379;
                    error_page      404 502 504 = @fallback;
            }

            echo $cookie_session;
            echo ' - ';
            echo $session;
    }

    location @fallback {
            echo 'Error!';
    }

Вот что я получаю в Google Chrome:

No data received
Unable to load the webpage because the server sent no data.

Проблема была связана с версией модуля NGiNX-Eval-Module, которую я использовал.

Скачал версию, представленную в документации. Это более поздняя версия в учетной записи GitHub.

Также мне пришлось закомментировать часть кода в файле ngx_http_eval_module.c: 640: 39 (только * pclcf), 631: 32 (только * ecf), 675 и 675.

Чтобы получить больше информации: https://github.com/vkholodkov/nginx-eval-module/issues/10