是否可以为两个/三个不同的域(别名)使用相同的node.js服务器?

时间:2018-03-11 16:47:05

标签: node.js nginx cross-domain

是否可以将相同的nodeJS服务器用于两个/三个不同的域(别名)? (我不想重定向我的用户。我希望他们看到他们在地址栏中输入的确切网址。但是,这三个域都完全相同!)

我希望我的用户同时登录所有三个域,以避免混淆。

最简单的方法是什么,避免跨域问题?

谢谢!

3 个答案:

答案 0 :(得分:3)

如果您的意思是所有域都将提供相同的nodejs app,那么您可以这样做。

但是如果每个域都应该打开另一个应用程序,那么您必须在服务器上运行反向代理来处理和管理站点/虚拟主机。

您可以安装nginx并将其用作反向代理服务器,或者为nodejs查找http-proxy库。

如果您想管理应用中的虚拟主机,可以查找nodejs的虚拟中间件并使用它

答案 1 :(得分:2)

选择以下其中一项:

使用其他服务器(like nginx)作为反向代理。

使用node-http-proxy作为反向代理。

如果可以从同一个Connect / Express代码库和node.js实例提供每个域,请使用vhost middleware

答案 2 :(得分:2)

这是一个非常广泛的问题。此外,在SEO方面,拥有多个独立域,每个域都提供相同的内容通常是一个非常糟糕的主意。

登录通常是通过Cookie或通过URL中的额外参数完成的。出于明显的安全原因,Cookie始终是特定于域的。如果您想确保人们一次登录所有域,您可以创建一个内部目的驱动的域来处理身份验证(没有这样的域显示在URL栏中,只有用于HTTP重定向,有效);这样的域将存储所有其余域的登录状态,其余的将通过这样的目的驱动域(通过HTTP重定向)获取登录状态。

然而,总的来说,这听起来太麻烦了。考虑到,也许某些用户特别希望为不同的帐户使用不同的域,因此,如果您要求对所有帐户使用单个登录,则您将有效地中断其使用。而且,回到最初的观点,这对SEO来说非常糟糕,所以,不要这样做。