Aplicación Nginx + Express en subdirectorio/ubicación, devolviendo 404

Aplicación Nginx + Express en subdirectorio/ubicación, devolviendo 404

Quiero que una aplicación express sea accesible a través dehttp://website.com/appy use nginx como proxy inverso y para servir archivos estáticos.

Esta es mi configuración de nginx:

upstream app {
    server localhost:3333;
}

server {
    listen 80;
    server_name website.com www.website.com;
    root /var/www/website.com;

    index index.html index.htm;

    location = / {
            try_files $uri $uri/ =404;
    }
    
    location /app/ {
        alias /var/www/app/static;
        try_files $uri $uri/ @app;
    }

    location @app {
        proxy_pass http://app;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";  
    }
}

index.js (ubicado en /var/www/app/static/) solicita algún recurso a través de fetch("/info").

Se supone que app.js (ubicado en /var/www/app/) entrega dicho recurso con

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json())

app.get("/info", (req, res) => {
    res.header("Content-Type",'application/json');
    res.send(JSON.stringify(info));
})

app.listen(3333, () => {
    console.log("Server listening at http://localhost:3333")
})

cuando visitohttp://misitioweb.com/app, los archivos estáticos son servidos por nginx pero /infogeneran un registro de errores 404. Nginx:"/var/www/website.com/info" falló (2: no existe tal archivo o directorio). La aplicación Express se está ejecutando ( $pm2 ls-> estado "en línea").

Supongo que la configuración del proxy no es correcta o que puede haber un malentendido sobre cómo funcionan nginx y los servidores de mi parte (estos son mis primeros pasos). Agradecería un consejo.

Respuesta1

tienes que hacer una entrada DNS para eso,

Especifique la ubicación del contenido, agregue el nombre del servidor como sitio y contenido en la ubicación

información relacionada