Зачем все эти сложности с поддоменами, когда все относительно просто
upstream client-upstream {
server 0.0.0.0:3000;
keepalive 15;
}
upstream back-upstream {
server 0.0.0.0:8000;
keepalive 15;
}
server {
listen ${HOST_IP}80;
server_name ${PROJECT_NAME} www.${PROJECT_NAME};
server_tokens off;
root /var/www/prod/public;
index index.php index.html index.htm;
location / {
proxy_pass http://client-upstream;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_upgrade;
proxy_set_header Host $host;
}
location /api {
proxy_pass http://back-upstream;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
В данном коде pm2 уменя поднимает и бэк и фронт на nuxt, со статичным бандлом реакта думаю все еще проще
nuxt крутится на 3000 порту бэк на 8000. При обращении на domain.ru/api nginx проксирует на 8000 порт в остальных случаях на 3000