2

我想分开托管我的应用程序网站。层次结构如下:

  • example.com- 网站托管在 DigitalOcean
  • example.com/*- SPA 托管在 Firebase Hosting

由于 DNS 不允许指向子目录,有没有更明智的方法来实现这一点?

提前致谢!

4

2 回答 2

2

由于不支持子域解决方案,您可以尝试使用像 nginx 这样的代理来根据到不同后端的路径路由流量。示例配置可能如下所示:

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 负载均衡器产品是否提供基于路径的路由。

于 2020-03-29T14:28:31.677 回答
0

我最终通过子域解决了这个问题,并决定分享这个解决方法。

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 的答案标记为解决方案,因为它是一个更全面的解决方案。

于 2020-03-30T19:12:19.613 回答