Actualización: lo tengo funcionando ahora. La respuesta de Jim Zajkowski me ayudó a detectar que mis llamadas de reinicio /etc/init.d/couchdb en realidad no estaban reiniciando la instancia. Después de que eliminé manualmente los procesos CouchDB y comencé una nueva instancia, recogió el cambio BindAddress requerido.
He instalado CouchDB a través de
aptitude install couchdb
Desde mi servidor, me puedo conectar a través de
telnet localhost 5984
y ejecutar comandos RESTful. Cuando intento acceder al servidor desde otra máquina en nuestra red o desde una máquina externa a nuestra red, aparece el error La conexión se restableció . He configurado el reenvío de puertos en el enrutador, y de otro modo se puede acceder al servidor a través de Apache, Tomcat, SSH, etc.
Soy nuevo en Linux / Ubuntu, por lo que no estaba seguro de si había un firewall predeterminado bloqueando la conexión, así que ejecuté:
iptables -A INPUT -p tcp --dport 5984 -j ACCEPT
Pero no sirvió de nada.
Aquí está el volcado de ejecutar 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
Supongo que los bytes que se muestran como transferidos para 5984 se deben a mi conexión de host local.
Aquí está el volcado de ejecutar netstat -an | grep 5984
tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN
Configuré couch.ini para que tenga "BindAddress = 0.0.0.0" y reinicié, por lo que debería estar escuchando en todas las interfaces. Cuando ejecuto "sudo /etc/init.d/couchdb stop" y luego ejecuto netstat, todavía veo la entrada anterior. Parece que CouchDB no se detiene en absoluto. Esto puede explicar mi problema, porque significa que puede significar que CouchDB nunca se reinició y nunca recogió el cambio de BindAddress.
Eliminé manualmente el proceso CouchDB y lo volví a iniciar. Ahora netstat muestra:
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
Sin embargo, todavía no puedo conectarme, incluso desde otra máquina en la LAN.
fuente
Respuestas:
Que
netstat -an | grep 5984
dice ¿Dice127.0.0.1:5984
o*:5984
? Si es así127.0.0.1
, se debe configurar couchdb para escuchar todas las interfaces.fuente
127.0.0.1:5984/_utils/config.html
(o URL equivalente para su configuración) y haga doble clic en el valor de la opción, edite, luego haga clic en la marca de verificación verde.Debe cambiar bind_address en /etc/couchdb/default.ini. Luego reinicie el servicio e intente nuevamente.
fuente
Me di cuenta de que para que esto funcione, debes matar manualmente el proceso de erlang en ejecución por alguna razón.
ps ax | grep beam
Si desea revelar el proceso de erlang, debe obtener algo similar a0:00 /usr/lib/erlang/erts
algún punto de la salida. Si elimina este proceso y luego ejecuta/etc/init.d/couchdb restart
el nuevo archivo de configuración, se cargará.fuente
En la PC / Mac doméstica, ejecute este comando:
siguiente abierto en su navegador localhost: 5984 / _utils ... Funciona para mí
fuente
Documentos de configuración :
Si lo cambia desde el panel de configuración de Futon, no tiene que hacer nada más (reiniciar el db, etc.):
Antes de cambiar la dirección de enlace predeterminada:
Después de cambiar a 0.0.0.0:
Tenga en cuenta que no son gurús: las computadoras que no pueden acceder a la suya (normalmente, cualquier cosa fuera de su red local) aún no podrán acceder a su computadora (CouchDB o cualquier otra cosa).
fuente
Encontré esto, y mi problema terminó siendo que, aparentemente, había couchdb ya instalado en mi instalación de Ubuntu. Había estado editando los archivos de configuración en / etc / couchdb, pero el que se estaba ejecutando en realidad estaba sacando la configuración de / usr / local / etc / couchdb.
El aviso fue que las configuraciones en / etc / couchdb mencionaron el sofá 0.10, pero acababa de instalar 1.0.1.
fuente
iptables -L -n -v
le mostrará sus reglas actuales de firewall. Vea si hay uno que descarta esos paquetes antes de que llegue a su regla.fuente
lsof -i -n -P | grep LISTEN
y publicar eso? Estás buscando el proceso CouchDB y a qué está destinado. Si es así127.0.0.1:5984
, debe configurar CouchDB para escuchar conexiones externas. Si es*:5984
, bueno, al menos CouchDB está configurado correctamente :)lsof
salida?