con 502 cubos inubuntu

Ubuntu y nginx en mi servidor. Tengo varios subdominios para este servidor, que puerto 3000 es alraedy ser utilizado por otro sitio web. Toda esta aplicación del nodo será útil desde pm2.

Supongo que causa el error de la puerta de entrada 502, es que el puerto no se sirve de mi servidor.

// /etc/nginx/sites-available/projectB

server {
    root /var/www/projectB;
    server_name projectB.domain.com www.projectB.domain.com;

    location / {
      proxy_pass http://localhost:3001; // this will be fine if it is localhost: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;
    }
}

Este es mi puerto de servicio de backend. No existe el puerto 3001 dentro. Porvide el error nginx. a continuación también.

// sudo netstat -plant

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      494/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      787/sshd: /usr/sbin 
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      80730/nginx: master 
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      32831/mongod        
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      80730/nginx: master 
tcp        0      0 127.0.0.1:27017         127.0.0.1:39994         ESTABLISHED 32831/mongod        
tcp        0      0 127.0.0.1:39994         127.0.0.1:27017         ESTABLISHED 81007/node          
tcp        0    364 139.59.107.31:22        124.13.195.75:50855     ESTABLISHED 82341/sshd: root@pt 
tcp        0      0 127.0.0.1:27017         127.0.0.1:39984         ESTABLISHED 32831/mongod        
tcp        0      0 127.0.0.1:27017         127.0.0.1:39986         ESTABLISHED 32831/mongod        
tcp        0      0 127.0.0.1:39986         127.0.0.1:27017         ESTABLISHED 81007/node          
tcp        0      0 127.0.0.1:39984         127.0.0.1:27017         ESTABLISHED 81007/node          
tcp6       0      0 :::22                   :::*                    LISTEN      787/sshd: /usr/sbin 
tcp6       0      0 :::3000                 :::*                    LISTEN      81007/node          
tcp6       0      0 :::443                  :::*                    LISTEN      80730/nginx: master 
tcp6       0      0 :::80                   :::*                    LISTEN      80730/nginx: master 

nginx/error.log

[error] 80731#80731: *434 connect() failed (111: Connection refused) while connecting to upstream, client: clientPort, server: projectB.domain.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:3001/", host: "projectB.domain.com"

Pregunta hecha hace 3 años, 4 meses, 27 días - Por codemaster89


3 Respuestas:

  • Parece que su aplicación en sí no está escuchando en el puerto 3001, que es donde Nginx está tratando de enviar sus solicitudes.

    Compruebe su aplicación está configurada para escuchar en ese puerto y que se está ejecutando. Puede comprobar si está funcionando intentando conectarse sin nginx en el camino, ejecutando este comando en su servidor.

    curl http://localhost:3001/

    Si recibes una respuesta, entonces tu aplicación está funcionando. Vea si Nginx es capaz de servir la página. Parece que debería basarse en tu confidente.

    Respondida el Dec 18, 2020 a las 17:29 - por nasean

    Votos positivos: 0 | Votos negativos: 0

  • El error 502 Bad Gateway que estás experimentando en tu servidor Nginx se debe a que estás tratando de redirigir el tráfico hacia un puerto (3001) que no está siendo utilizado por ningún servicio en tu servidor.

    Para solucionar este problema, debes modificar la configuración de Nginx para redirigir el tráfico al puerto correcto donde tu aplicación Node.js está siendo ejecutada. En tu caso, parece que tu aplicación Node.js está siendo ejecutada en el puerto 3000 en lugar del puerto 3001.

    Aquí está la parte relevante de tu archivo de configuración de Nginx (/etc/nginx/sites-available/projectB) que necesita ser corregida:

    nginx
    location / {
        proxy_pass http://localhost:3001; // Debes cambiar esto a http://localhost:3000;
        proxy_http_version 1.1; // Cambia ":" por un espacio en esta línea
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
    

    Una vez que hayas corregido la configuración para que Nginx redirija el tráfico al puerto correcto (3000 en tu caso), asegúrate de reiniciar Nginx para que los cambios surtan efecto:

    bash
    sudo systemctl restart nginx
    

    Después de realizar estos cambios, tu aplicación Node.js debería funcionar correctamente a través de Nginx sin el error 502 Bad Gateway.

    Respondida el Dec 19, 2020 a las 17:29 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Basado en la información que has proporcionado, parece que tu servidor Nginx está configurado para reenviar solicitudes al puerto 3001 en localhost, pero este puerto no existe en tu aplicación. Esto está causando el error 502 Bad Gateway en tu servidor web.

    Para solucionar este problema, debes modificar la configuración de Nginx para que reenvíe las solicitudes al puerto correcto de tu aplicación. En tu archivo de configuración de Nginx (/etc/nginx/sites-available/projectB), cambia la línea:

    
    proxy_pass http://localhost:3001;
    

    Por:

    
    proxy_pass http://localhost:3000;
    

    Asegúrate de reiniciar Nginx después de realizar este cambio:

    
    sudo systemctl restart nginx
    

    También debes asegurarte de que tu aplicación Node.js esté escuchando en el puerto 3000. Puedes verificar esto utilizando el siguiente comando:

    
    netstat -tulpn | grep 3000
    

    Si no ves ningún resultado, entonces tu aplicación no está escuchando en el puerto 3000. En este caso, debes iniciar tu aplicación en el puerto 3000 o modificar la configuración de Nginx para reenviar las solicitudes a un puerto diferente que esté utilizando tu aplicación.

    Una vez que hayas realizado estos cambios, deberías poder acceder a tu aplicación sin recibir el error 502 Bad Gateway.

    Respondida el Dec 19, 2020 a las 17:40 - por Gemini

    Votos positivos: 0 | Votos negativos: 0