Pembaruan: Saya membuatnya berfungsi sekarang. Jawaban Jim Zajkowski membantu saya mendeteksi bahwa panggilan reboot /etc/init.d/couchdb saya sebenarnya tidak me-reboot instance. Setelah saya secara manual membunuh proses CouchDB dan memulai contoh baru, ia mengambil perubahan BindAddress yang diperlukan.
Saya telah menginstal CouchDB via
aptitude memasang couchdb
Dari server saya, saya dapat terhubung melalui
telnet localhost 5984
dan jalankan perintah RESTful. Ketika saya mencoba mengakses server dari komputer lain di jaringan kami atau dari mesin di luar jaringan kami, saya mendapatkan koneksi itu kesalahan reset . Saya telah mengatur port forwarding pada router, dan server dapat diakses melalui Apache, Tomcat, SSH, dll.
Saya baru mengenal Linux / Ubuntu, jadi saya tidak yakin apakah ada firewall standar yang memblokir koneksi, jadi saya berlari:
iptables -A INPUT -p tcp --port 5984 -j MENERIMA
tapi itu tidak membantu.
Ini adalah dump dari menjalankan 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
Saya menganggap byte yang ditampilkan sebagai ditransfer untuk 5984 adalah karena koneksi localhost saya.
Ini adalah dump dari menjalankan netstat -an | grep 5984
tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN
Saya mengkonfigurasi couch.ini untuk memiliki "BindAddress = 0.0.0.0" dan reboot, jadi itu harus mendengarkan pada semua antarmuka. Ketika saya menjalankan "sudo /etc/init.d/couchdb berhenti" kemudian jalankan netstat, namun, saya masih melihat entri di atas. Sepertinya CouchDB sebenarnya tidak berhenti sama sekali. Ini mungkin menjelaskan masalah saya, karena itu berarti itu berarti CouchDB tidak pernah benar-benar reboot dan tidak pernah mengambil perubahan BindAddress.
Saya secara manual membunuh proses CouchDB dan mulai lagi. Sekarang netstat menunjukkan:
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
Saya masih tidak bisa terhubung, bahkan dari komputer lain di LAN.
sumber
Jawaban:
Apa yang
netstat -an | grep 5984
dikatakan? Apakah itu mengatakan127.0.0.1:5984
atau*:5984
? Jika itu127.0.0.1
, maka couchdb perlu diatur untuk mendengarkan semua antarmuka.sumber
127.0.0.1:5984/_utils/config.html
(atau URL yang setara untuk pengaturan Anda) dan klik dua kali nilai opsi, edit, lalu klik tanda centang hijau.Anda harus mengubah bind_address di /etc/couchdb/default.ini. Kemudian restart layanan dan coba lagi.
sumber
Saya perhatikan bahwa agar ini berfungsi, Anda harus mematikan proses erlang yang sedang berjalan karena suatu alasan.
ps ax | grep beam
Seharusnya mengungkapkan proses erlang, Anda harus mendapatkan sesuatu di sepanjang garis0:00 /usr/lib/erlang/erts
di suatu tempat di output. Jika Anda mematikan proses ini dan kemudian jalankan/etc/init.d/couchdb restart
file konfigurasi baru akan dimuat.sumber
Di PC rumah / Mac jalankan perintah ini:
selanjutnya buka di localhost browser Anda: 5984 / _utils ... Ini berfungsi untuk saya
sumber
Dokumen konfigurasi :
Jika Anda mengubahnya dari panel konfigurasi Futon, Anda tidak perlu melakukan hal lain (me-reboot db dll.):
Sebelum mengubah bind_address default:
Setelah berubah menjadi 0.0.0.0:
Catatan non-guru: komputer yang tidak dapat mengakses komputer Anda (biasanya, apa pun di luar jaringan lokal Anda) masih tidak dapat mengakses komputer Anda (CouchDB atau yang lainnya).
sumber
Saya mengalami ini, dan masalah saya akhirnya adalah ternyata, ternyata, couchdb sudah diinstal pada instalasi Ubuntu saya. Saya telah mengedit file config di bawah / etc / couchdb, tetapi file yang sedang berjalan sebenarnya menarik config dari / usr / local / etc / couchdb.
Kiatnya adalah bahwa konfigurasi di / etc / couchdb menyebutkan sofa 0.10, tapi saya baru saja menginstal 1.0.1.
sumber
iptables -L -n -v
akan menunjukkan kepada Anda aturan firewall Anda saat ini. Lihat apakah ada satu yang menjatuhkan paket-paket itu sebelum sampai ke aturan Anda.sumber
lsof -i -n -P | grep LISTEN
dan memposting itu? Anda sedang mencari proses CouchDB, dan apa itu terikat. Jika itu127.0.0.1:5984
, Anda perlu mengonfigurasi CouchDB untuk mendengarkan koneksi eksternal. Jika itu*:5984
, baik, setidaknya CouchDB dikonfigurasi kanan :)lsof
hasil itu?