Несколько публичных IP-адресов для одного Nginx?


Я запускаю несколько экземпляров MySQL с помощью docker. Я планировал использовать nginx в качестве обратного прокси-сервера, я хочу назначить публичный IP каждому экземпляру, чтобы я мог сопоставить публичный ip с моей сетью docker, возможно ли это ?

2 2

2 ответа:

Вы можете использовать consul с частью реестра, так как Consul предлагает вам DNS-сервер для всех зарегистрированных экземпляров: https://www.consul.io/docs/agent/dns.html

Более или менее это означает, что экземпляры docker регистрируются в consul, и consul может разрешить их также для внешних служб. Это, однако, потребует от вас иметь более одного публичного IP.

Если вы хотите только один публичный ip, вы, очевидно, хотите сбалансировать нагрузку mysql, так как TCP-соединения не могут быть " маршрутизированы" по пути / домену. Тем не менее, вы можете использовать consul как service-discovery и Tiller + consul backend для генерации конфигурации nginx для восходящего потока, перечисляя все текущие доступные серверы

Вы можете просто использовать зарезервированные IP-адреса из вашего личного адресного пространства для контейнеров docker, сделать ваш экземпляр nginx маршрутизируемым из интернета, установив общедоступный ip, и, наконец, вы можете загружать запросы баланса в контейнеры docker.