2014-01-08 75 views
0

我有2個服務器,一個nginx/PHP和一個mongoDB服務器。我已經正確配置了mongoDB服務器的iptables,並且可以在防火牆關閉時使用nginx服務器連接到它。但是,當我打開防火牆時。它停止工作。應用服務器上應該打開什麼來連接到MongoDB?MongoDB應用服務器IPTables

我在我的mongo數據庫服務器上使用了默認端口。這是我的Web服務器上的iptables輸出。

Chain INPUT (policy DROP) 
target  prot opt source    destination   
ACCEPT  tcp -- { MongDB IP }  anywhere   tcp dpt:27017 
ACCEPT  tcp -- anywhere    anywhere   tcp dpt:http state NEW,ESTABLISHED 
ACCEPT  tcp -- anywhere    anywhere   tcp dpt:https state NEW,ESTABLISHED   

Chain FORWARD (policy ACCEPT) 
target  prot opt source    destination   

Chain OUTPUT (policy DROP) 
target  prot opt source    destination   
ACCEPT  tcp -- anywhere    { MongDB IP }  tcp spt:27017 
ACCEPT  tcp -- anywhere    anywhere   tcp spt:http state ESTABLISHED 
ACCEPT  tcp -- anywhere    anywhere   tcp spt:https state ESTABLISHED 

回答

1

除非你有一個分片集羣或已經改變了default ports used by MongoDB,你需要有從應用程序服務器只開放端口27017的MongoDB的服務器上。

通過MongoDB中使用的默認端口是:

  • 27017(獨立的mongod)
  • 27018(mongod的--shardsvr)
  • 27019(mongod的--configsvr)
  • 28017(網絡狀態頁面..您不應該在生產中啓用此功能)

MongoDB文檔包含的示例。

您可能還需要檢查bind_ip值(如果設置)以確保mongod正在偵聽應用程序服務器試圖連接的網絡接口。默認情況下,mongod偵聽所有接口,但在初始安裝時,某些發行版可能會將其限制爲localhost。

+0

查看上面的我的iptables – user1978109