Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

268
Vistas
¿Cómo ejecutar (múltiples) aplicaciones angulares dockerizadas con nginx dentro y nginx como proxy inverso?

tengo el siguiente problema: construyo una aplicación angular con nginx en docker... así:

 FROM node:slim as build WORKDIR /usr/local/app COPY ./ /usr/local/app/ RUN npm install RUN npm run build FROM nginx:latest COPY --from=build /usr/local/app/dist/myapp /usr/share/nginx/html EXPOSE 4200

cuando ahora construyo y ejecuto el dockerfile local... no hay problema, podría ingresar "localhost: 4200" y llegar a mi aplicación. Después de que eso funcione, configuro las acciones de github y copio mi código vis ssh en mi servidor vps. En este servidor tengo un nginx, que funciona como proxy inverso. La configuración de nginx para mi aplicación angular se ve así:

 server { listen 80; return 301 https://$host$request_uri; } server { listen 443; server_name mydomain.com; ssl_certificate /etc/ssl/certs/mydomain.com/cert.pem; ssl_certificate_key /etc/ssl/certs/mydomain.com/key.pem; ssl on; access_log /var/log/nginx/access.log; location / { proxy_pass http://0.0.0.0:4200; } }

Creo el certificado ssl a través de cloudflare y configuro el tls en modo estricto. Ahora pensé cuando ingresé a mydomain.com -> va a mi servidor ubuntu con el nginx instalado, verifica el certificado y luego redirige al contenedor docker, pero no sucede nada cuando intento llegar a mi sitio, aparece un 502 Mala puerta de enlace....

También probé esta configuración nginx (sin cloudflare y ssl) pero también obtuve un 502

 server { listen 80 http2; server_name mydomain.com; location / { proxy_set_header Host $host; proxy_pass http://localhost:4200; } }

¿Podrías ayudarme? Actualmente no entiendo por qué eso no funcionará.

(Expuse el puerto 4200 y ejecuté la aplicación angular de esta manera: docker run -p 4200:4200 myapp cuando ingreso netstat -tulpn siempre dice que docker se ejecuta en el puerto 4200 ... pero cuando hago curl en mi linux dice: (56) Recv failure: Connection reset by peer )

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Tienes que implementar la aplicación como sitio estático. No debe usar ng serve en producción con el puerto 4200.

Hacer esto

  1. Cree la aplicación como sitio estático
  2. Copie eso en la ubicación de NgInx /usr/share/nginx/html
  3. Actualice NgInx para servir desde /usr/share/nginx/html

Aquí está el archivo NgInx actualizado

 user www-data; worker_processes auto; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf; events { worker_connections 768; # multi_accept on; } http { upstream springboot { server localhost:8080 max_conns=10; } server { listen 80; listen [::]:80; server_name <server ip>; location / { root /usr/share/nginx/html; try_files $uri $uri/ /index.html; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; } } ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda