Запуск двух разных веб-приложений в одном домене с помощью nginx

#nginx #subdomain #web-deployment

#nginx #поддомен #веб-развертывание

Вопрос:

Я новичок в развертывании сервера. Для моего приложения электронной коммерции у меня есть два проекта react, один storefront для клиентов, а другой dashboard для администраторов. Я настроил свой сервер nginx со следующей конфигурацией. Я могу получить доступ к своему магазину, перейдя https://shop.saleortest.com , но я хочу получить доступ к своей панели мониторинга с помощью https://shop.saleortest.com/dashboard . Это можно сделать с reverse proxy помощью добавления proxy_pass внутри location блока. Но я не знаю, как этого добиться. Я попытался добавить этот блок здесь https://admin.shop.saleortest.com работает на том же сервере. Но это не работает

 location /dashboard/ {
   proxy_pass https://admin.shop.saleortest.com;
}
  

В качестве примера я могу перейти на этот сайт https://demo.saleor.io / это витрина магазина, и если я пойду в https://demo.saleor.io/dashboard это приводит меня к dashboard приложению, это два разных приложения react, использующих один и тот же домен. Здесь и storefront, и dashboard работают на одном сервере? Как я могу добиться чего-то подобного. Спасибо.

    
    server {
    server_name shop.saleortest.com;
    root /var/www/html/storefront;
    index index.html;
    location / {
        try_files $uri $uri/ /index.html?$args;
}

    location /graphql/ {
    proxy_pass http://127.0.0.1:8000/graphql/;
  }

location /dashboard/ {
   proxy_pass https://admin.gethookedseafood.com;
}


    listen [::]:443 ssl; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/shop.saleortest.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/shop.saleortest.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

    server {
    if ($host = shop.saleortest.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    listen [::]:80;
    server_name shop.saleortest.com;
    return 404; # managed by Certbot


}