Atualização: eu consegui trabalhar agora. A resposta de Jim Zajkowski me ajudou a detectar que minhas chamadas de reinicialização do /etc/init.d/couchdb não estavam realmente reiniciando a instância. Depois que eu matei manualmente os processos do CouchDB e iniciei uma nova instância, ela captou a alteração necessária no BindAddress.
Eu instalei o CouchDB via
aptitude install couchdb
No meu servidor, eu posso conectar via
telnet localhost 5984
e execute comandos RESTful. Quando tento acessar o servidor de outra máquina em nossa rede ou de uma máquina externa à nossa rede, recebo um erro A conexão foi redefinida . Configurei o encaminhamento de porta no roteador e o servidor pode ser acessado via Apache, Tomcat, SSH, etc.
Eu sou novo no Linux / Ubuntu, então não tinha certeza se havia um firewall padrão bloqueando a conexão, então executei:
iptables -A INPUT -p tcp --dport 5984 -j ACEITAR
mas não ajudou.
Aqui está o dump da execução do iptables -L -n -v
Chain INPUT (policy ACCEPT 2121K packets, 1319M bytes)
pkts bytes target prot opt in out source destination
70 3864 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:5984
9 1647 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 1708K packets, 1136M bytes)
pkts bytes target prot opt in out source destination
Presumo que os bytes exibidos como transferidos para 5984 sejam devidos à minha conexão localhost.
Aqui está o despejo da execução de netstat -an | grep 5984
tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN
Eu configurei o couch.ini para ter "BindAddress = 0.0.0.0" e reiniciei, portanto, ele deve estar ouvindo em todas as interfaces. Quando executo "sudo /etc/init.d/couchdb stop", em seguida, executo o netstat, no entanto, ainda vejo a entrada acima. Parece que o CouchDB não está realmente parando. Isso pode explicar meu problema, porque significa que pode significar que o CouchDB nunca realmente foi reiniciado e nunca recebeu a alteração BindAddress.
Eu matei o processo do CouchDB manualmente e o iniciei novamente. Agora, o netstat mostra:
tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5984 127.0.0.1:35366 TIME_WAIT
Ainda não consigo conectar, mesmo de outra máquina na LAN.
fonte
Respostas:
O que
netstat -an | grep 5984
diz? Diz127.0.0.1:5984
ou*:5984
? Se estiver127.0.0.1
, o couchdb precisa ser configurado para ouvir todas as interfaces.fonte
127.0.0.1:5984/_utils/config.html
(ou URL equivalente para a sua configuração) e clicar duas vezes no valor da opção, editar e clicar na marca de seleção verde.Você precisa alterar o endereço de bind em /etc/couchdb/default.ini. Em seguida, reinicie o serviço e tente novamente.
fonte
Percebi que, para que isso funcione, você deve manualmente matar o processo erlang em execução por algum motivo.
ps ax | grep beam
deve revelar o processo erlang, você deve obter algo ao longo de linhas de0:00 /usr/lib/erlang/erts
algum lugar na saída. Se você finalizar esse processo e executar,/etc/init.d/couchdb restart
o novo arquivo de configuração será carregado.fonte
No PC / Mac doméstico, execute este comando:
próximo aberto no seu navegador localhost: 5984 / _utils ... Funciona para mim
fonte
Documentos de configuração :
Se você o alterar no painel de configuração do Futon, não precisará fazer mais nada (reiniciar o banco de dados etc.):
Antes de alterar o endereço bind_ad padrão:
Depois de mudar para 0.0.0.0:
Observe os que não são gurus: os computadores que não podem acessar o seu (normalmente, qualquer coisa fora da rede local) ainda não poderão acessar o seu computador (CouchDB ou qualquer outra coisa).
fonte
Eu encontrei isso, e meu problema acabou sendo que, aparentemente, o couchdb já estava instalado na minha instalação do Ubuntu. Eu estava editando os arquivos de configuração em / etc / couchdb, mas o que estava sendo executado estava de fato puxando a configuração de / usr / local / etc / couchdb.
A dica foi que as configurações no / etc / couchdb mencionaram o couch 0.10, mas eu tinha acabado de instalar a 1.0.1.
fonte
iptables -L -n -v
irá mostrar suas regras atuais de firewall. Veja se há um que está descartando esses pacotes antes que eles atinjam sua regra.fonte
lsof -i -n -P | grep LISTEN
e postar isso? Você está procurando o processo do CouchDB e a que ele está vinculado. Se for127.0.0.1:5984
, você precisa configurar o CouchDB para ouvir conexões externas. Se é*:5984
, bem, pelo menos CouchDB está configurado direito :)lsof
saída?