Introducción

OWASP Juice Shop es una aplicación creada deliberadamente insegura, para práctica

Entorno previo

Es un sistema Debian 12, donde ya habían otras aplicaciones de prueba en PHP y se usaba nginx. Así que tuve que instalar node, npm y pm2:

apt install nodejs
apt install npm --no-install-suggests --no-install-recommends
npm install pm2 -g

Instalación

El npm install realmente es un largo proceso, no solo por la descarga de paquetes, sino también por todas las tareas post-instalación

cd /var/www/
git clone https://github.com/juice-shop/juice-shop.git --depth 1
cd juice-shop
npm install

Seguimos configurando pm2, creo que el proceso va más o menos así (Para variar, lo hice un poco más confuso). Desde el directorio /var/www/juice-shop:

pm2 startup
systemctl enable --now pm2-root
pm2 start npm --name "juice-shop" -- start
pm2 save

Por último, la configuración en Nginx va de la siguiente manera:

upstream juice_shop {
    server 127.0.0.1:3000;
    keepalive 64;
}

server {
    listen 80;
    
    server_name juice-shop.sanidad.gob.sv;
   
    location / {
    	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    	proxy_set_header Host $http_host;
        
    	proxy_http_version 1.1;
    	proxy_set_header Upgrade $http_upgrade;
    	proxy_set_header Connection "upgrade";
        
    	proxy_pass http://juice_shop/;
    	proxy_redirect off;
    	proxy_read_timeout 240s;
    }
}

Reiniciamos nginx y resolvemos como hacer para resolver esa dirección

Fuentes