SPA 和网站的单独托管但共享域
Separate hosting for SPA and Website but share domain
我想分开托管我的 app 和 website。层级如下:
example.com
- 网站托管在 DigitalOcean
example.com/*
- SPA 托管在 Firebase Hosting
由于 DNS 不允许指向子目录,是否有更明智的方法来完成此操作?
提前致谢!
由于子域解决方案不受青睐,您可以尝试使用像 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 负载均衡器产品是否提供基于路径的路由。
我最终通过子域解决了问题,并决定分享这个解决方法。
1. DNS记录如下
www : pointing to website
* : root pointing SPA
2。在我的 Vue 应用程序中,我刚刚添加了一个简单的 window.replace
以从根目录重定向到 www
.
if (window.location.host === 'example.com') window.location.replace('https://www.example.com');
--
远非整洁,但工作得很好:)
我将@Scarysize 的答案标记为解决方案,因为它是一个更全面的解决方案。
我想分开托管我的 app 和 website。层级如下:
example.com
- 网站托管在 DigitalOceanexample.com/*
- SPA 托管在 Firebase Hosting
由于 DNS 不允许指向子目录,是否有更明智的方法来完成此操作?
提前致谢!
由于子域解决方案不受青睐,您可以尝试使用像 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 负载均衡器产品是否提供基于路径的路由。
我最终通过子域解决了问题,并决定分享这个解决方法。
1. DNS记录如下
www : pointing to website
* : root pointing SPA
2。在我的 Vue 应用程序中,我刚刚添加了一个简单的 window.replace
以从根目录重定向到 www
.
if (window.location.host === 'example.com') window.location.replace('https://www.example.com');
--
远非整洁,但工作得很好:)
我将@Scarysize 的答案标记为解决方案,因为它是一个更全面的解决方案。