Я пытался установить 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 делает запросы слишком быстро. Может, у кого-то знаний хватит для уточнения?