如何配置HAProxy将请求转发到Mongo数据库

时间:2020-01-24 00:04:15

标签: haproxy

是否可以设置/使用HAProxy将请求转发到mongo数据库?如果可以的话,有人可以在haproxy.cfg文件中提供如何进行设置的基本示例吗?

我尝试了这个,但这不起作用:

listen  mongo
    bind 10.123.45.6:27017
    mode tcp
    balance roundrobin
    server mongo1 10.456.78.9:27017

其中10.123.45.6是安装了HAProxy的实例的IP。 其中10.456.78.9是安装了mongodb实例的IP。

尝试通过命令行调用客户端时的屏幕截图:

C:\Program Files\MongoDB\Server\3.6\bin>mongo "mongodb://10.123.45.6:27017"
MongoDB shell version v3.6.11
connecting to: mongodb://10.123.45.6:27017/?gssapiServiceName=mongodb
2020-01-23T15:53:41.707-0800 W NETWORK  [thread1] Failed to connect to 10.123.45.6:27017 after 5000ms milliseconds, giving up.
2020-01-23T15:53:41.707-0800 E QUERY    [thread1] Error: couldn't connect to server 10.123.45.6:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:263:13
@(connect):1:6
exception: connect failed

1 个答案:

答案 0 :(得分:1)

您的设置正确,但是我为您添加了一个示例


listen port_27017
  bind :27017
  mode tcp
  server mongodb-port 10.156.78.9:27017

它应该连接,但只是为了确认从哪里尝试连接?是在本地网络内还是在云中某处。因为根据RFC 1918,所有10.0.0.0/8都属于专用网络,所以如果您在网络外部并尝试访问10.123.45.6,它将无法正常工作。

如果它在网络内,请尝试tail的日志HAProxy,看看它是否能够连接到Mongo。

如果在外部,则需要使用其公共IP地址而不是私有IP连接到HAProxy。