• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

341
Views
¿Cómo configurar nginx para el proxy inverso para ocultar los puertos en los que se ejecutan los contenedores docker?


Tengo 2 contenedores docker: frontend (Angular 8) y api (Node), frontend funciona en el puerto 81 de forma predeterminada y api en el puerto 1337. También registré un dominio donde ambas aplicaciones están disponibles y agregué la configuración para ssl. Sin embargo, funciona de tal manera que el frontend está disponible en www.example.com y la api, en www.example.com:1337, me gustaría saber si hay una forma de establecer la configuración de nginx para servir frontend en www.example.com y api en www.example.com/api y escuchar ambos contenedores en el puerto 443? Gracias de antemano por tu ayuda.

nginx.conf para proxy inverso

 http { upstream frontend { server frontend:81; } upstream api { server api:1337; } server { listen 80; location ~ /.well-known/acme-challenge { allow all; root /usr/share/nginx/html; } location / { rewrite ^ https://$host$request_uri? permanent; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name www.example.com example.com; server_tokens off; ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem; ssl_buffer_size 8k; ssl_protocols TLSv1.2 TLSv1.1 TLSv1; ssl_prefer_server_ciphers on; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5; ssl_ecdh_curve secp384r1; ssl_session_tickets off; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8; location /api { try_files $uri @api; } location / { try_files $uri @frontend; } location @frontend { proxy_pass http://frontend; add_header X-Frame-Options "SAMEORIGIN" always; add_header X-XSS-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "no-referrer-when-downgrade" always; add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" always; } location @api { proxy_pass http://api; add_header X-Frame-Options "SAMEORIGIN" always; add_header X-XSS-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "no-referrer-when-downgrade" always; add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" always; } root /usr/share/nginx/html; index index.html index.htm index.nginx-debian.html; } }

parte de docker-compose.yml responsable del proxy inverso

 reverse: container_name: reverseProxy hostname: reverse image: nginx:latest ports: - "80:80" - "81:81" - "1337:1337" - "443:443" volumes: - ./defaultnginx.conf:/etc/nginx/nginx.conf - /usr/share/nginx/html:/usr/share/nginx/html - certbot-etc:/etc/letsencrypt - certbot-var:/var/lib/letsencrypt depends_on: - frontend - api
about 3 years ago · Santiago Trujillo
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error