HAProxy / acoplable: 502 Pasarela incorrecta al golpear envase acoplable corriendo Frasco / React aplicación

votos
0

Estoy tratando de Dockerize a / aplicación web Frasco reaccionar durante facilidad de desarrollo / colaboración, pero tener problemas para conseguir una respuesta adecuada de la aplicación. Soy capaz de obtener la imagen construida y el servidor Frasco comenzó en un contenedor, pero tener problemas en realidad golpeándola.

Utilizamos HAProxy a transmitir las peticiones, y las cosas funcionan bien cuando tengo el proxy y servidor web que se ejecutan localmente. El tema ha sido cada ventana acoplable en la mezcla. Creo que debe ser un problema de asignación de puertos, pero estoy fuera de ideas y siento que puede faltar clave sutilezas HAProxy / acoplables. Las miradas de archivos proxy.cfg de la siguiente manera (con los ejércitos ajenos no incluidos):

global
 maxconn 4096
 pidfile ~/tmp/haproxy.pid

defaults
 log global
 log 127.0.0.1 local0
 log 127.0.0.1 local1 notice
 mode http
 timeout connect 300000
 timeout client 300000
 timeout server 300000
 maxconn 2000
 option redispatch
 retries 3
 option httpclose
 option httplog
 option forwardfor
 option httpchk HEAD / HTTP/1.0


frontend dev
   bind *:8080 ssl crt ./proxy.pem

    acl allow_web path_beg /app/

    use_backend be_web if allow_web

backend be_web
 balance roundrobin
 server web_5000 localhost:5000

Dockerfile:

FROM node:10.6.0

RUN apt-get update
RUN apt-get install -y python-pip python-dev build-essential 

WORKDIR /usr/src/app

COPY ./package.json .
RUN npm install
COPY . .
RUN pip install -e ./server

CMD [npm, start]

cargador de muelle-compose.yml:

version: 3

services:
    userportal:
        build: .
        volumes:
            - /usr/src/app/node_modules
            - .:/usr/src/app
        ports:
            - 5000:5000

El servidor Flask se une al puerto 5000 de ahí el mapeo. He intentado sustituir la dirección IP contenedor para localhost(por ejemplo 172.19.0.2:5000), pero mismo resultado.

Nota HAProxy se ejecuta en su propio terminal y no está dentro de un recipiente.

Publicado el 13/02/2020 a las 23:59
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

Usted debe saber su IP contenedor de antemano

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

En algún momento, si desea utilizar HAProxy que va más fácil de hacer que el interior de ventana acoplable a componer a avoir problemas de red

Si no desea usted puede intentar: haproxy.conf

global
  maxconn 4096
  pidfile ~/tmp/haproxy.pid

defaults
  log global
  log 127.0.0.1 local0
  log 127.0.0.1 local1 notice
  mode http
  timeout connect 300000
  timeout client 300000
  timeout server 300000
  maxconn 2000
  option redispatch
  retries 3
  option httpclose
  option httplog
  option forwardfor
  option httpchk HEAD / HTTP/1.0


frontend dev
  bind 0.0.0.0:8080 ssl crt ./proxy.pem   // <-- change wildcard with 0.0.0.0
  acl allow_web path_beg /app/
  use_backend be_web if allow_web
  default_backend be_web                  // <-- add this line

backend be_web
  balance roundrobin
  mode http
  option forwardfor                       // <-- add this line
  option httpchk GET / HTTP/1.1           // <-- add this line
  server web_5000 userportal_1:5000 check // <-- change localhost to the nane of running container "userportal_1" or the IP if you get it

Dockerfile:

FROM node:10.6.0

RUN apt-get update
RUN apt-get install -y python-pip python-dev build-essential

WORKDIR /usr/src/app

COPY ./package.json .
RUN npm install
COPY . .
RUN pip install -e ./server

EXPOSE 5000 // <-- add this ine

CMD ["npm", "start"]

cargador de muelle-compose.yml

version: "3"

services:
  userportal:
    build: .
    volumes:
      - /usr/src/app/node_modules
      - .:/usr/src/app
    ports:
      - "5000:5000"

Trate de incluir su HAProxy en su ventana acoplable-compose.yml va a ayudar mucho

Respondida el 14/02/2020 a las 00:56
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more