# Guía: Cambiar el puerto de Node.js ## 📍 Archivos que necesitas modificar Para cambiar el puerto 3000 a otro, debes actualizar **3 lugares**: 1. **`ecosystem.config.js`** - Configuración de PM2 2. **`nginx-optimized.conf`** - Configuración de Nginx (2 lugares) 3. **Opcional: Código fuente** - Si quieres cambiar el puerto por defecto ## 🔧 Pasos para cambiar el puerto ### Ejemplo: Cambiar de 3000 a 3001 ### 1. Actualizar `ecosystem.config.js` ```javascript env: { NODE_ENV: 'production', PORT: 3001 // ← Cambiar aquí } ``` ### 2. Actualizar `nginx-optimized.conf` Hay **2 lugares** donde aparece `localhost:3000`: ```nginx # Línea ~36: Proxy para APIs location /api/ { proxy_pass http://localhost:3001; # ← Cambiar aquí # ... } # Línea ~51: Proxy para datos location /data/ { proxy_pass http://localhost:3001; # ← Cambiar aquí # ... } ``` ### 3. (Opcional) Cambiar puerto por defecto en el código Si quieres cambiar el puerto por defecto en `src/index-optimized.js` y `src/index.js`: ```javascript const port = process.env.PORT || 3001 // Cambiar 3000 por 3001 ``` **Nota:** Esto solo es necesario si no usas la variable de entorno `PORT`. ## 🚀 Aplicar los cambios ### 1. Reiniciar PM2 con la nueva configuración ```bash # Si ya está corriendo, detener primero pm2 stop parking-api # Reiniciar con la nueva configuración pm2 restart ecosystem.config.js # O eliminar y volver a crear pm2 delete parking-api pm2 start ecosystem.config.js ``` ### 2. Recargar Nginx ```bash # Verificar que la configuración es correcta sudo nginx -t # Si está bien, recargar sudo systemctl reload nginx # O reiniciar sudo systemctl restart nginx ``` ### 3. Verificar que funciona ```bash # Verificar que Node.js está escuchando en el nuevo puerto curl http://localhost:3001/api/health # Debe responder: {"ok":true} # Verificar que Nginx hace proxy correctamente curl http://localhost/api/health # Debe responder: {"ok":true} ``` ## 📝 Resumen rápido ```bash # 1. Editar ecosystem.config.js → cambiar PORT: 3001 # 2. Editar nginx-optimized.conf → cambiar localhost:3001 (2 lugares) # 3. Reiniciar PM2: pm2 restart ecosystem.config.js # 4. Recargar Nginx: sudo systemctl reload nginx # 5. Verificar: curl http://localhost:3001/api/health ``` ## ⚠️ Puertos comunes a evitar - **80**: Usado por Nginx/Apache - **443**: HTTPS (SSL) - **22**: SSH - **3306**: MySQL - **5432**: PostgreSQL - **8080**: A veces usado por otros servicios **Puertos recomendados:** 3001, 3002, 4000, 5000, 8000, 8081 ## 🔍 Verificar qué puerto está usando ```bash # Ver el puerto en PM2 pm2 show parking-api | grep PORT # Ver qué procesos están usando un puerto sudo netstat -tulpn | grep 3001 # O con ss sudo ss -tulpn | grep 3001 ```