Node.js 动态生成子域
我正在开发一个MEAN应用程序,它为人们提供他们自己独特的子域,作为他们注册过程的一部分。我该怎么做 我对我使用的云服务持开放态度,例如,我对Digital Ocean印象深刻,但它也可能是AWS。只要它是可伸缩的Node.js 动态生成子域,node.js,angularjs,express,mean-stack,Node.js,Angularjs,Express,Mean Stack,我正在开发一个MEAN应用程序,它为人们提供他们自己独特的子域,作为他们注册过程的一部分。我该怎么做 我对我使用的云服务持开放态度,例如,我对Digital Ocean印象深刻,但它也可能是AWS。只要它是可伸缩的 例如,当Bob与我们签约时,您如何生成bobsmith.nicksamazingnewapp.com?对他来说,能马上使用它吗?我认为最好的解决方案是为子域设置一个通配符,这样任何东西都可以被追踪到*.nicksamazingnewapp.com,然后你可以决定它指向的服务器端 ap
例如,当Bob与我们签约时,您如何生成bobsmith.nicksamazingnewapp.com?对他来说,能马上使用它吗?我认为最好的解决方案是为子域设置一个通配符,这样任何东西都可以被追踪到*.nicksamazingnewapp.com,然后你可以决定它指向的服务器端
app.get('/', function(req, res) {
var hostname = req.headers.host.split(":")[0];
if(hostname == "sub1.domain.com")
res.send("this is sub1 response!");
else if(hostname == "sub2.domain.com")
res.send("this is sub2 response!");
});
代码的学分归@Jazor
您还可以尝试一个模块虚拟主机是一个不错的选择。看看我前几天遇到的这个新图书馆。您只是在使用vhost中间件 这是他们网站上的一个代码示例
// create main app
var app = connect()
// add vhost routing to main app for mail
app.use(vhost('mail.example.com', mailapp))
// route static assets for "assets-*" subdomain to get
// around max host connections limit on browsers
app.use(vhost('assets-*.example.com', staticapp))
仅供参考,如果您正在使用,则需要在config/express.js文件中添加middlware您可以将Nginx或Apache作为代理运行,然后将请求重写为从
sub.domain.com
转到domain.com/sub
。