Как настроить HAProxy для пересылки запросов в базу данных Mon go - PullRequest
0 голосов
/ 24 января 2020

Можно ли настроить / использовать HAProxy для пересылки запросов в базу данных mon go? Если да, то может ли кто-нибудь предоставить базовый c пример того, как настроить это в файле 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 - это IP-адрес экземпляра с установленной HAProxy. Где 10.456.78.9 - это IP-адрес экземпляра с установленной mongodb.

Снимок экрана при попытке вызвать клиент из командной строки:

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 Ответ

1 голос
/ 24 января 2020

Ваши настройки верны, однако я добавляю пример для вас


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

Он должен подключиться, но только для подтверждения, откуда пытаетесь подключиться? Это внутри локальной сети или где-то из облака. Поскольку согласно RFC 1918 все 10.0.0.0/8 принадлежат частной сети, если вы находитесь вне сети и пытаетесь получить доступ к 10.123.45.6, это не будет работать.

А если он внутри сети, попробуйте tail войти в HAProxy и посмотреть, сможет ли он подключиться к Mon go или нет.

Если он снаружи, вам нужно подключиться к HAProxy, используя его публичный c IP-адрес, а не частный IP-адрес.

...