2017-03-27 15 views
0

我在碼頭構成haproxy和nginx玩耍。 我試圖做到的是,如果我縮放nginx的容器是碼頭構成規模不與haproxy一起工作

泊塢窗,撰寫規模的nginx = 2

的HAProxy的容器還代理了新的nginx的容器。但不知何故它不承認新的集裝箱。

這裏是我的CONFIGS:

泊塢窗,compose.yml:

version: '2.1' 
services: 

    nginx: 
    image: 'bitnami/nginx:latest' 
    healthcheck: 
     test: "curl -f http://localhost/?healthcheck" 
    expose: 
     - "80" 

    haproxy: 
    image: haproxy 
    restart: always 
    depends_on: 
     nginx: 
     condition: service_healthy 
    links: 
     - nginx 
    ports: 
     - "80:80" 
    volumes: 
     - ./haproxy:/usr/local/etc/haproxy/ 
    expose: 
     - "80" 

haproxy.cfg

global 
    log 127.0.0.1 local0 
    log 127.0.0.1 local1 notice 

defaults 
    log global 
    mode http 
    option httplog 
    timeout connect 5000 
    timeout client 10000 
    timeout server 10000 

frontend localnodes 
    bind 0.0.0.0:80 
    mode http 
    default_backend nodes 

backend nodes 
    mode http 
    option forwardfor 
    balance roundrobin 
    server nginx nginx:80 check 
    option httpchk GET /?haproxyselfcheck 
    http-check expect status 200 

我應該怎麼做才能HAProxy的識別新的容器,而不只是手動添加一個更多的nginx到docker-compose文件中?

回答

0

在做了一些研究之後,我發現了一個與docker swarm一起工作的解決方案。 Docker swarm有自己的負載平衡器。但是,將代理服務器轉換爲最適合的服務似乎是來自傳奇人物Victor Farcic的碼頭流代理https://github.com/vfarcic/docker-flow-proxy

然後,您可以將新服務添加到代理服務器。

1

或者,使用dockercloud-haproxy

HAProxy的形象,鏈接容器之間平衡,如果在泊塢雲推出或使用泊塢撰寫V2,重新配置,當連接羣集成員重新部署,加入或離開。

而且也:

您可以通過三種不同的方式使用dockercloud/haproxy

  • 在泊塢雲(雲計算模式)
  • 運行與多克的舊連結(傳統模式)運行
  • 與Docker Compose v2一起運行(Compose模式,與Docker Swarm兼容)
  • 與碼頭工人SwarmMode(羣模式)

例如運行:

docker-compose scale nginx=5 

而且haproxy會自動檢測到新的情況下,自己重新配置,並重新啓動。

相關問題