2015-04-02 2 views
2

Я пытаюсь использовать Docker и haproxy для того, чтобы выполнить запрос loadbalance/roundrobin на ряд встроенных tomcats.Использование Docker и haproxy для загрузки запросов баланса в несколько экземпляров встроенного tomcat

Моя текущая конфигурация выглядит следующим образом:

От Докер-compose.yml:

loadbalancer: 
    image: haproxy 
    links: 
     - web 
    ports: 
     - "8080:8080" 
web: 
    build: ./web 

От ./web/Dockerfile:

FROM java:8 
ADD ./bignibou-server-1.0.jar /app/bignibou-server-1.0.jar 
ADD ./spring-cloud.properties /app/spring-cloud.properties 
ENV SPRING_CLOUD_PROPERTIESFILE=/app/spring-cloud.properties 
ENV SPRING_PROFILES_ACTIVE=cloud 
ENV SPRING_CLOUD_APP_NAME=bignibou 
ENV CLEARDB_DATABASE_URL=mysql://root:[email protected]:3306/bignibou_dev 
ENV REDISCLOUD_URL=redis://dummy:[email protected]:6379 
ENV DYNO=dummy 
EXPOSE 8080 
ENTRYPOINT [ "java", "-jar", "/app/bignibou-server-1.0.jar" ] 

Когда я сокет-составитель масштаба web = 2, за которым следует докер-компоновка, я вижу, как запускается tomcat, но затем я una чтобы получить доступ к ним через браузер ...

Может кто-нибудь посоветует, как получить доступ к моему приложению баланса нагрузки? Я пробовал:

  • 172.17.42.1:8080
  • 172.17.42.1:80

но безрезультатно (где 172.17.42.1 мой докер внутрибрюшинно).

Нужно ли мне дополнительно настраивать haproxy?

ответ

1

Вам нужно изменить правила iptable для порта 8080. Пара вещей, которые вы можете проверить. netstat -anp | grep 8080, чтобы узнать, действительно ли ваше приложение прослушивает этот порт. Вы также можете запустить tcpdump на хосте и внутри контейнера, чтобы узнать, получаете ли вы пакеты.

3

Вам нужно будет настроить HAProxy, предоставляя информацию на серверных серверах и алгоритм балансировки нагрузки. Недостаточно просто запустить контейнер с использованием изображения haproxy.

Вам потребуется Dockerfile использовать HAproxy изображение и скопировать конкретный файл HAProxy конфигурации изображения: Вы можете обратиться к инструкциям в официальном HAproxy странице изображения: https://registry.hub.docker.com/_/haproxy/

Как настроить балансировку нагрузки используя HAProxy: https://serversforhackers.com/load-balancing-with-haproxy

Я написал блог на примере докеры с Nginx, Node и Redis. В нем описано, как загрузить серверы балансовых узлов с nginx: http://anandmanisankar.com/posts/docker-container-nginx-node-redis-example/

Концептуально это то же самое, что и серверы балансировки Tomcat HAProxy. Но структура конфигурации будет отличаться. Надеюсь, это было полезно.

 Смежные вопросы

  • Нет связанных вопросов^_^