更新后 MongoDB REST 接口未监听

更新后 MongoDB REST 接口未监听

我用 Ubuntu 包(mongodb-server、mongodb-client 和 dev)替换了 mongodb-10gen 安装。

apt-get install mongodb

此后,我现在无法连接到之前可以正常工作的 REST 接口。

执行 wget 来http://127.0.0.1:27018,我收到以下回复:

Connecting to 127.0.0.1:27018... failed: Connection refused.

我以前的/etc/mongodb.conf文件包含以下内容:

#enable REST
rest = true

将其添加到打包的 conf 文件中并不能解决问题,即使重新启动后也无法解决问题。

我也尝试过更改以下内容,但没有效果:

# Disable the HTTP interface (Defaults to localhost:27018).
# nohttpinterface = true

# Disable the HTTP interface (Defaults to localhost:27018).
nohttpinterface = false

我搜索了好几天,但 Mongo 网站上似乎没有关于类似异常的任何信息。如果您在 Ubuntu Oneiric 上遇到过类似问题,请添加您的评论,即使您还没有找到此问题的解决方案。

答案1

首先,不要使用 Ubuntu 软件包 - 您最终会得到旧版本,在某些情况下非常旧(我见过 1.2、1.6 等)。使用 10gen 软件包,截至撰写本文时,您应该获得 2.0.4

接下来,HTTP 接口默认为 +1000(无论您定义的 MongoDB 端口是多少),因此如果您期望它在 27018 上,那么您必须将 MongoDB 端口设置为 26018。这似乎是一个奇怪的选择。如果您将端口设置保留为默认值,那么您的正常端口将是 27017,而 HTTP REST 接口将是 28017 - 您是否将它们混淆了?

最后,如果您想查看正在监听哪个端口,请使用:

lsof -i | grep LISTEN

这将为您提供所有开放的监听端口及其所属进程的列表,添加另一个管道并 grep mongod 以进一步缩小范围。

相关内容