Configuración de Servidores con Reverse Proxy y SSL
Diagrama de flujo
INTERNET
|
IP pública: 187.109.104.001
|
pfSense
(NAT/Port Forward 80 y 443)
|
-----------------------
| |
Servidor principal Nuevo servidor
(Nginx + SSL + Certbot) (Node.js + Angular)
- Subdominios - Node.js backend (puerto 3000)
- SSL LetsEncrypt - Angular build (puerto 4200 Nginx interno)
- Reverse proxy → LANConfiguración de subdominios en el Servidor Principal Nginx
1. Node.js backend en nuevo servidor
server {
listen 443 ssl;
server_name api.midominio.com;
ssl_certificate /etc/letsencrypt/live/api.midominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/api.midominio.com/privkey.pem;
location / {
proxy_pass http://IP-PRIVADA:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}2. Angular frontend en nuevo servidor (servido por Nginx interno)
server {
listen 443 ssl;
server_name front.midominio.com;
ssl_certificate /etc/letsencrypt/live/front.midominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/front.midominio.com/privkey.pem;
location / {
proxy_pass http://IP-PRIVADA:4200;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}3. Laravel en servidor viejo
server {
listen 443 ssl;
server_name app.midominio.com;
ssl_certificate /etc/letsencrypt/live/app.midominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/app.midominio.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
}
}Nginx interno en el nuevo servidor (Angular)
server {
listen 4200;
server_name front.internal;
root /var/www/frontend/dist/app-dir/browser;
index index.html;
location / {
try_files $uri /index.html;
}
}Node.js backend interno
cd /var/www/backend/dist
node server.jsDNS y pfSense
DNS:
api.midominio.com→ IP pública187.109.104.001front.midominio.com→ IP pública187.109.104.001app.midominio.com→ IP pública187.109.104.001
pfSense NAT/Port Forward:
Puertos 80 y 443 apuntan al servidor principal
Nginx principal hace reverse proxy a los servidores internos según subdominio y puerto.
Ventajas
Servidor principal maneja SSL y certificados.
Servidores internos usan puertos internos sin exponerlos públicamente.
Certbot puede renovar certificados automáticamente.
Evita saturación del servidor viejo y conflictos de puerto.
Notas para GitBook: copia todo el contenido en un archivo Markdown (.md) y mantenlo en la carpeta de tu repositorio para que GitBook lo procese automáticamente. También puedes agregar diagramas con mermaid si quieres visualizaciones más avanzadas.
Última actualización