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

Набор тестов Couchdb не работает в Linux

Я пытался установить CouchDB на свой виртуальный сервер webfusion. Я выполнил последние инструкции с форума webfusion (см .: http://forum.webfaction.com/viewtopic.php?id=2355 ) и он работает (просто) Futon очень вялый, и я получаю 502 ошибки. В любом случае, когда я запускаю набор тестов, он терпит неудачу на нескольких тестах. Поддержка Webfaction была отличной, но у меня нет опыта работы с erlang для интерпретации журналов ошибок. Может ли кто-нибудь помочь мне узнать, что может быть не так?

Результат набора тестов: основы, all_docs, attachments, attachments_multipart, attachment_names, compact, config, columns, delayed_commit, design_docs, design_options

все ошибки:

Exception raised: {"error":"unknown","reason":"\u000d\u000a502 Bad Gateway\u000d\u000a\u000d\u000a502 Bad Gateway\u000d\u000a

nginx\u000d\u000a\u000d\u000a\u000d\u000a"}

кроме 'компактный; в котором также есть:

Assertion failed: xhr.responseText == "This is a base64 encoded text" Assertion failed: xhr.getResponseHeader("Content-Type") == "text/plain"

Я в тупике.

Кто-нибудь знает, что это означает?

AL

У меня тоже была эта проблема. Похоже, это проблема связи nginx-CouchDB. В середине «основного» теста есть команда для перезапуска CouchDB. После этого лог nginx выглядит так:

2010/12/02 03:21:09 [error] 708#0: *132 upstream prematurely closed connection while reading response header from upstream, client: 70.205.249.118, server: localhost, request: "POST /_restart HTTP/1.1", upstream: "http://127.0.0.1:5984/_restart", host: "79.125.20.163", referrer: "http://79.125.20.163/_utils/couch_tests.html?script/couch_tests.js"
2010/12/02 03:21:10 [error] 708#0: *132 connect() failed (111: Connection refused) while connecting to upstream, client: 70.205.249.118, server: localhost, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5984/", host: "79.125.20.163", referrer: "http://79.125.20.163/_utils/couch_tests.html?script/couch_tests.js"
2010/12/02 03:21:10 [error] 708#0: *132 connect() failed (111: Connection refused) while connecting to upstream, client: 70.205.249.118, server: localhost, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5984/", host: "79.125.20.163", referrer: "http://79.125.20.163/_utils/couch_tests.html?script/couch_tests.js"

Это означает, что сразу после сброса CouchDB активно отказывается от подключений, и нам просто нужно сделать еще один или два запроса.

Решение заключалось в том, чтобы добавить что-то подобное в конфигурацию nginx, чтобы он выполнял 5 запросов, прежде чем отображать ошибку пользователю (обратите внимание на часть max_fails):

upstream  couchdb  {
    server   127.0.0.1:5984       max_fails=5  fail_timeout=30s;
}

server {
    ...
        location / {
            proxy_pass http://couchdb;
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

Надеюсь это поможет.

Обновление: после небольшого тестирования этот метод тоже не помог. nginx делает запросы слишком быстро. Может, у кого-то знаний хватит для уточнения?