2015-11-10 68 views
1

我有一个应用服务器上有一些PHP代码需要访问一个遥远的MongoDB服务器。 为了做到这一点,我想允许在我的MongoDB服务器上进行远程访问,但仅限于应用服务器IP。 据我所知,我需要更改位于/etc/mongodb.conf中的bind_ip值才能完成此操作。 我将它从bind_ip=127.0.0.1更改为bind_ip=111.222.33.44(其中111.222.33.44是我的应用服务器IP),但它不起作用(我的PHP代码显示“Connection refused”)。但是,如果将该值设置为bind_ip=0.0.0.0,则该值有效。为什么?我不想让任何人尝试连接我的MongoDB服务器。允许MongoDB远程访问特定的IP

回答

1

bind_ip告诉mongod要在哪个IP地址上侦听传入连接。因此,如果将其设置为127.0.0.1,则mongod只会在本地主机上侦听,反之亦然 - 只能在同一台计算机上进行连接。

将其设置为不同的IP地址时,每个能够与该IP通信的主机都可以连接到MongoDB。

为了确保只有您的应用程序服务器可以与您的MongoDB实例对话,您需要在运行MongoDB的服务器上或其前面的某个位置配置防火墙。

+0

Thx的提示,但你能告诉我为什么它的工作原理当我将bind_ip设置为0.0.0.0,但不是当我将它设置为XXX.XXX.XX.XX时? – PiTiNiNjA

+0

@PiTiNiNjA'0.0.0.0'转换为“侦听可能分配给它的所有接口和任何IP”。 XXX.XXX.XXX.XXX需要是与该机器相关联的IP才能使MongoDB可访问。再说一遍:它不限制客户...... –