2016-06-30 2 views
1

redis를 사용하는 python webapp의로드 밸런서로 HAProxy를 사용하려고합니다. 나는 도커 실행 명령을 docker-compose.yml을 사용하여 docker-compose로 전환하는 중입니다.하지만 문제가 있습니다.Docker-Compose HAProxy missing frontend

다음은 현재 작동중인 "도커 실행"명령입니다.

global 
    log 127.0.0.1 local0 
    log 127.0.0.1 local1 notice 
    log-send-hostname 
    maxconn 4096 
    pidfile /var/run/haproxy.pid 
    user haproxy 
    group haproxy 
    daemon 
    stats socket /var/run/haproxy.stats level admin 
    ssl-default-bind-options no-sslv3 
    ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:DHE-DSS-AES128-SHA:DES-CBC3-SHA 
defaults 
    balance roundrobin 
    log global 
    mode http 
    option redispatch 
    option httplog 
    option dontlognull 
    option forwardfor 
    timeout connect 5000 
    timeout client 50000 
    timeout server 50000 
listen stats 
    bind :1936 
    mode http 
    stats enable 
    timeout connect 10s 
    timeout client 1m 
    timeout server 1m 
    stats hide-version 
    stats realm Haproxy\ Statistics 
    stats uri/
    stats auth stats:stats 
frontend default_frontend 
    bind :80 
    bind :443 ssl crt /certs/ 
    reqadd X-Forwarded-Proto:\ https 
    maxconn 4096 
    defcon 1 
    default_backend default_service 
: 여기

docker run --name sdnapi-redis -v /opt/redis:/data -p 6379:6379 -d redis redis-server --appendonly yes 
docker run -d --name sdnapi1 --link sdnapi-redis:redis mycomp/sdnapi 
docker run -d --name sdnapi2 --link sdnapi-redis:redis mycomp/sdnapi 
docker run -d --name sdnapilb -p 80:80 -p 443:443 -p 1936:1936 -e DEFAULT_SSL_CERT="$(awk 1 ORS='\\n' ./certs/cert.pem)" -v /certs/:/certs/ --link sdnapi1:sdnapi1 --link sdnapi2:sdnapi2 dockercloud/haproxy 

이 같은 기능

version: '2' 
services: 
    sdnapi: 
    image: mycomp/sdnapi 
    links: 
     - sdnapi-redis:redis 
    sdnapilb: 
    image: dockercloud/haproxy:1.2.1 
    environment: 
     - DEFAULT_SSL_CERT 
    volumes: 
     - /certs/:/certs/ 
    ports: 
     - "80:80" 
     - "443:443" 
     - "1936:1936" 
    links: 
     - sdnapi:sdnapi 
    sdnapi-redis: 
    image: redis 
    volumes: 
     - /opt/redis:/data 
    ports: 
     - "6379:6379" 
    command: redis-server --appendonly yes 

나는 고정 표시기 실행 명령을 실행 복제해야 내 고정 표시기 - compose.yml이다, 이것은 sdnapilb 로그입니다

docker-compose.yml을 "docker-upose -d"와 함께 실행하면 ... 프론트 엔드가 손실됩니다. 섹션.

global 
    log 127.0.0.1 local0 
    log 127.0.0.1 local1 notice 
    log-send-hostname 
    maxconn 4096 
    pidfile /var/run/haproxy.pid 
    user haproxy 
    group haproxy 
    daemon 
    stats socket /var/run/haproxy.stats level admin 
    ssl-default-bind-options no-sslv3 
    ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:DHE-DSS-AES128-SHA:DES-CBC3-SHA 
defaults 
    balance roundrobin 
    log global 
    mode http 
    option redispatch 
    option httplog 
    option dontlognull 
    option forwardfor 
    timeout connect 5000 
    timeout client 50000 
    timeout server 50000 
listen stats 
    bind :1936 
    mode http 
    stats enable 
    timeout connect 10s 
    timeout client 1m 
    timeout server 1m 
    stats hide-version 
    stats realm Haproxy\ Statistics 
    stats uri/
    stats auth stats:stats 

설정에 문제가 있습니까? 확장 기능을 사용하기 위해 도커 - 작성 기능을 사용하고 싶습니다.

+0

-d없이 실행하면 터미널에서 출력을 볼 수 있습니다. 디버깅에 도움이 될 것입니다. 그러면 질문과 함께 오류를 게시하십시오. – ExoticChimp

+0

아이디어를 제공해 주셔서 감사합니다. 나는 그것을 시도했지만 프론트 엔드 섹션이없는 haproxy.cfg 출력 외에 로그에는 그다지 많은 것이 없다. 통계 페이지 (1936 포트)는 정상적으로 작동하지만 프론트 엔드가 없기 때문에 포트 80 또는 443에 노출이 없습니다. – truncj

답변

0

나는이 문제를 ... 알아 냈

고정 표시기 - compose.yml가 링크와 함께 문제가 있습니다 .. 링크 형식은 서비스 이름입니다 : 별명

광산과 문제를 별명이 ' ... 잘못된 것입니다 ... 실제 오류없이 도커 작성이 실패하게됩니다. 별칭은 존재하지 않으므로 단지 프론트 엔드가 아닌 컨테이너를 연결하지 않습니다.