天天看点

如何通过公网访问MongoDB云数据库?

包含公网 + 私网ip的ecs

公网ip:xx.xx.xx.xx

私网ip:yy.yy.yy.yy

mongodb云数据库

节点1:dds-2ze56d3294df7b491.mongodb.rds.aliyuncs.com:3717 (primary,通过ping域名来获取对应的ip,假设为zz.zz.zz.zz,因域名对应的ip可能发生变化,在生产环境切勿直接指定ip)

节点2:dds-2ze56d3294df7b492.mongodb.rds.aliyuncs.com:3717

通过<code>xx.xx.xx.xx:27017</code>能访问到<code>zz.zz.zz.zz:3717</code>提供的mongodb云服务。

利用iptables的nat机制,可以方便的实现请求转发,首先需要ecs开启包转发的支持

配置转发规则

此时你就能在任意能连通公网的机器上连接xx.xx.xx.xx:27017访问mongodb云服务,所有的请求都会转发到zz.zz.zz.zz:3717上。需要注意的是,此时访问xx.xx.xx.xx:27017只能以单节点的方式直连,而不能按复制集的方式访问。

haproxy支持tcp(四层)、http(七层)2种转发模式,类似于iptables,我们也可以利用haproxy来实现公网访问mongodb云数据库。

修改/etc/haproxy/haproxy.cfg配置文件内容,根据默认的配置文件稍作修改,主要配置tcp转发模式、前端、后端服务的地址信息。(haproxy版本为1.5.4)

启动haproxy

<a href="https://www.aliyun.com/product/mongodb">阿里云mongodb云数据库</a>

<a href="https://yq.aliyun.com/articles/8461?spm=0.0.0.0.1lskok">使用正确的姿势连接复制集</a>

<a href="http://blog.imdst.com/yun-zhu-ji-ying-she-mysqlwai-wang-fang-wen/">如何通过公网地址访问云数据库</a>