最近為了學習後端購買了一臺阿里雲ECS雲伺服器(專用網路) 環境如下: OS:Ubuntu16.04, MongoDB:v4.0.1
嘗試著安裝了MongoDB並進行了相應的配置,搜尋了一些資料發現關鍵在於三點:
- MongoDB的bindIp配置:
MongoDB預設的配置檔案中,bindIp選項預設是localhost,也就是說預設只有安裝了MongoDB的主機自己能夠訪問。所以如果需要外網的主機能夠訪問MongoDB服務,首先需要更改bindIp選項,將其設定為指定的IP地址(x.x.x.x, ...)者繫結所有的IP地址(0.0.0.0 )。MongoDB 3.6之後的版本新增了bindIpAll選項,
true
代表繫結所有IP地址。 配置檔案如下:
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIpAll: true
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
複製程式碼
-
Linux防火牆iptables的配置: 在bash中輸入
sudo iptables -A INPUT -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT
開放MongoDB的埠。 接著輸入iptables-save
和iptables-restore
儲存iptables的配置資訊以免主機重啟後需要重新配置。 -
ECS主機的安全組規則配置:
經過以上的配置後,就能夠遠端連線阿里雲ECS上搭建的MongoDB服務了。