3

多数の組み込み tomcat へのリクエストをロードバランス/ラウンドロビンするために、Docker と haproxy を使用しようとしています。

私の現在の構成は次のとおりです。

docker-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:root@192.168.1.12:3306/bignibou_dev
ENV REDISCLOUD_URL=redis://dummy:dummy@192.168.1.12:6379
ENV DYNO=dummy
EXPOSE 8080
ENTRYPOINT [ "java", "-jar", "/app/bignibou-server-1.0.jar" ]

docker-compose scale web=2 に続いて docker-compose up を実行すると、両方の tomcat が起動していることがわかりますが、ブラウザからそれらにアクセスできません...

私の負荷分散アプリにアクセスする方法について誰かアドバイスしてもらえますか? 私が試してみました:

  • 172.17.42.1:8080
  • 172.17.42.1:80

無駄に(172.17.42.1は私のドッカーIPです)。

haproxy をさらに構成する必要がありますか?

4

2 に答える 2

1

ポート 8080 の iptable ルールを変更する必要がありますか。確認できる点がいくつかあります。netstat -anp | grep 8080 を実行して、アプリが実際にそのポートでリッスンしているかどうかを確認します。ホスト上およびコンテナー内で tcpdump を実行して、パケットを取得しているかどうかを確認することもできます。

于 2015-04-02T14:55:22.077 に答える