Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

640
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!