阿里云ECS服务器配置MongoDB外网访问
此处配置ECS服务器允许外网,即此处本地Mac,去远程连接(位于阿里云ECS服务器中的)MongoDB
1.登录ECS服务器 配置阿里云安全组
mongdb 安全组规则
2.放开MongoDB端口
iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
3. 配置MongoDB 允许远程链接
mongodb.conf 配置
net:
bindIp: 0.0.0.0
注:在设置外网所有IP都能访问之前,要设置用户名和密码,保证安全!!!
笔者配置完后,由于ECS服务器配置了nginx做代理,导致依旧无法访问MongoDB,于是需要对nginx做改变!
由于笔者Nginx主要是提供了http相关的代理配置,mongodb需要tcp,故需要在nginx.conf中添加tcp的配置
stream {
server {
listen <your incoming Mongo TCP port>;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass mongodb;
}
upstream mongodb {
server <localhost:your local Mongo TCP port>;
}
}
如出现stream无法配置,无法启动nginx ,例如出现如下错误:unknown directive “stream” in /usr/local/nginx
可能是nginx默认安装的时候无法加载流stream模块,需要在启动参数里加上–with-stream。
解决方法: 重新对源文件进行编译、安装,通过添加–with-stream参数指定安装stream模块。
> ./configure --with-stream
> make & make install1
再次检查nginx.conf配置文件,确认配置无语法错误后,再次尝试启动服务。即可成功!