Отдельный хостинг для SPA и сайта, но общий домен - PullRequest
1 голос
/ 29 марта 2020

Я хочу разделить хостинг моего приложения и веб-сайта . Иерархия выглядит следующим образом:

  • example.com - веб-сайт, размещенный на DigitalOcean
  • example.com/* - SPA, размещенный на Firebase Hosting

Поскольку DNS это делает не разрешать указывать подкаталоги, есть ли более мудрый способ сделать sh это?

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 29 марта 2020

Поскольку решение для поддоменов не пользуется популярностью, вы можете использовать прокси-сервер типа nginx для маршрутизации трафика c на основе пути к различным бэкэндам. Пример конфигурации может выглядеть примерно так:

server {
    listen       ...;
    ...
    location / {
        proxy_pass http://<your-website>;
    }

    location /app {
        proxy_pass http://<your-app>;
    }

    location /another-app {
        proxy_pass http://<another-app>;
    }
    ...
}

Источник: https://gist.github.com/soheilhy/8b94347ff8336d971ad0

Вы также можете проверить, предлагает ли продукт устройства балансировки нагрузки Digital Ocean путь на основе маршрутизации.

0 голосов
/ 30 марта 2020

Я решил проблему с помощью поддоменов и решил поделиться этим обходным путем.

1. DNS записи следующим образом

www : pointing to website
* : root pointing SPA

2. В моем приложении Vue я просто добавил простой window.replace для перенаправления с root на www.

if (window.location.host === 'example.com') window.location.replace('https://www.example.com');

-

Далеко не аккуратно, но работает просто отлично:)


Я отмечаю ответ @ Scarysize как решающий, поскольку это более всеобъемлющее решение.

...