是否可以设置/使用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
答案 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。