Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

326
Visualizações
Docker nginx proxy para alojar

Breve descripción:

Nginx ejecutándose en docker, cómo configurar nginx para que reenvíe las llamadas al host.

Descripción larga:

Tenemos una aplicación web que se comunica con un par de backends (digamos rest1, rest2 y rest3). Somos responsables del rest1 .

Consideremos que inicié rest1 manualmente en mi PC y lo ejecuté en el puerto 2345. Quiero que nginx (que se ejecuta en la ventana acoplable) redirija todas las llamadas a rest1 a mi propia instancia en ejecución (nota, la instancia se ejecuta en el host, no en ningún contenedor ni en la ventana acoplable). Y para rest2 y rest3 a algún otro nodo docker o puede ser algún otro servidor (a quién le importa).

Lo que estoy buscando es:

  1. Configuraciones docker-compose.yml (si es necesario).
  2. configuración de nginx.

Gracias por adelantado.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Configure nginx de la siguiente manera (asegúrese de reemplazar la IP de Docker Host) y guárdelo como default.conf :

 server { listen 80; server_name _; location / { proxy_pass http://<IP of Docker Host>; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }

Ahora abre el contenedor:

 docker run -d --name nginx -p 80:80 -v /path/to/nginx/config/default.conf:/etc/nginx/conf.d/default.conf nginx
over 4 years ago · Santiago Trujillo Relatório

0

Si está utilizando la versión 3 del archivo Docker Compose, no necesita ninguna configuración especial para el archivo docker-compose.yml , solo use el nombre de DNS especial host.docker.internal para llegar a un servicio de host, como en el siguiente nginx.conf ejemplo nginx.conf :

 events { worker_connections 1024; } http { upstream host_service { server host.docker.internal:2345; } server { listen 80; access_log /var/log/nginx/http_access.log combined; error_log /var/log/nginx/http_error.log; location / { proxy_pass http://host_service; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $realip_remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Connection ""; } } }
over 4 years ago · Santiago Trujillo Relatório

0

Solución 1

Use network_mode: host , esto vinculará su instancia nginx a la interfaz de red del host. Esto podría generar conflictos al ejecutar varios contenedores nginx: cada puerto expuesto está vinculado a la interfaz del host.

Solución 2

Estoy ejecutando más instancias de nginx para cada servicio que me gustaría exponer al mundo exterior. Para mantener las configuraciones de nginx simples y evitar vincular cada nginx al host, use la estructura del contenedor:

dockerhost : un contenedor ficticio con network_mode: host

proxy : contenedor nginx utilizado como proxy para alojar el servicio,

vincule dockerhost a proxy , esto agregará una entrada /etc/hosts en el contenedor de proxy ; podemos usar 'dockerhost' como nombre de host en la configuración de nginx.

docker-compose.yaml

 version: '3' services: dockerhost: image: alpine entrypoint: /bin/sh -c "tail -f /dev/null" network_mode: host proxy: image: nginx:alpine links: - dockerhost:dockerhost ports: - "18080:80" volumes: - /share/Container/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro

predeterminado.conf

 location / { proxy_pass http://dockerhost:8080;

Este método nos permite tener certificados automáticos de encriptación generados para cada servicio que se ejecuta en mi servidor. Si está interesado, puedo publicar una idea general sobre la solución.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda