Node.js Nodejs:要将域映射到服务器吗

Node.js Nodejs:要将域映射到服务器吗,node.js,Node.js,我有一个webapp,允许人们在我的应用服务器上创建子站点(例如:mysite.com/他们的站点)。我希望他们能够将他们的域名指向我应用程序上的子站点。类似于将域附加到共享主机服务器的方式 我真的不知道该怎么办。如果有人能告诉我,我将不胜感激。如果您使用类似的方法,或者您可以在不同的本地端口上运行每个单独的站点,然后将域名映射回。我使用http代理,但其他人喜欢nginx 为此,您需要将DNS条目添加到运行反向代理的IP地址。例如,端口80请求将映射回localhost:3000 这样,每个应

我有一个webapp,允许人们在我的应用服务器上创建子站点(例如:mysite.com/他们的站点)。我希望他们能够将他们的域名指向我应用程序上的子站点。类似于将域附加到共享主机服务器的方式

我真的不知道该怎么办。如果有人能告诉我,我将不胜感激。

如果您使用类似的方法,或者您可以在不同的本地端口上运行每个单独的站点,然后将域名映射回。我使用http代理,但其他人喜欢nginx

为此,您需要将DNS条目添加到运行反向代理的IP地址。例如,端口80请求将映射回localhost:3000

这样,每个应用程序都可以独立运行,并在与其他站点不同的进程中运行。他们不能互相撞车。如果两个应用程序都声明相同的路径,则也不会出现名称空间问题

http代理的My app.js如下所示:

var proxyPort = 80;
var http = require('http');
var httpProxy = require('http-proxy');

var options = {
    router: {
        'localhost': '127.0.0.1:3000',
        'somesite.com': '127.0.0.1:3000',
        'othersite.com': '127.0.0.1:4000'
    }
};
console.log('Proxy Routing:');
console.log(options);
console.log();

var proxyServer = httpProxy.createServer(options);
proxyServer.listen(proxyPort);
console.log('Proxy listening on port ' + proxyPort);
也可以使用路径进行布线。见此:

因此,更像您最初的请求,您可以:

router: {
    'myhost.com/appA': '127.0.0.1:8080',
    'myhost.com/appB': '127.0.0.1:9090/appB',
    'myhost.com/appC': '127.0.0.1:9090/appC'
  }
};
另一种选择是简单地为每个客户提供一个路由/页面,然后这只是一个DNS问题。您将设置DNS,以便所有域名解析为您的应用程序运行时所使用的一个IP地址。这有一些缺点:

  • domain1.com/user1、domain1.com/user2、domain2.com/user1和domain2.com/user2都可以正常工作,这可能是您不希望的
  • 你控制所有的代码还是他们提供代码?如果它是用户提供的代码,那么您需要一些隔离,因此需要单独的应用程序
  • 您可能仍然需要一个http代理在linux的端口80上运行,而不是像sudo那样运行

  • 您是否将这些指向不同的Node.js实例?还是所有相同的应用程序?您在示例中提到的是令人困惑的:
    mysite.com/他们的站点
    不会位于单独的域中,而是不同的路径。您通常有类似于
    domain.com
    的域和类似于
    mail.domain.com
    的子域。您想重定向或处理这些请求吗?@user568109很抱歉造成混淆。mysite.com/they-site将是他们在我的应用程序上的页面。他们可能在其他地方注册了自己的域,我希望他们可以选择将其映射到我网站上的页面。@Brad这一个应用程序多个域将指出拥有一个所有域都可以解析的应用程序的缺点-请参阅我文章的下半部分。在我的情况下,我认为我正在将一个域设置为路由。那么,这样的解决方案是:'user1domain.com':'127.0.0.1:9090/user1page'?如果我计划将100多个域映射到此应用程序,这也是首选方法吗?是的,应该可以。100+不会是个问题-当然,这取决于每个域的负载和资源需求。很好的是,路由也意味着如果需要,你可以扩展到多个盒子。好的,这就是我要尝试的。我应该让他们的注册官指出什么?我需要让他们更改名称服务器或其他什么吗?此外,子路由在代理之后是否仍能在其域中工作?(例如:user1domain.com/account)。抱歉,以前从未使用过任何反向代理。他们不必更改名称服务器-但无论他们的注册指向何处,都需要DNS编辑。如果他们希望您能够管理它,那么如果一个DNS服务器/公司上的所有条目都存在,那么管理起来可能会更容易。