【问题标题】:Is it possible to run several Angular 2/4 instances with the same port?是否可以使用相同的端口运行多个 Angular 2/4 实例?
【发布时间】:2018-01-29 12:53:08
【问题描述】:

我很好奇是否可以使用相同的端口运行多个 Angular2/4 实例,但子域/域不同。

当我尝试在本地 ip 上运行一个实例并在 localhost 上运行一个实例时,我第二次启动 angular 时,我收到一个错误,指出端口 4200 已在使用中。

由于这是相同的,就像在具有不同子域的一台服务器上运行两个实例一样,如果不可能的话,那就太糟糕了。

【问题讨论】:

  • Angular 在浏览器中运行,而不是在服务器上。 Angular 应用程序由 HTTP 服务器(Node.js、Apache httpd、nginx)提供服务。因此,您希望单个 HTTP 服务器为多个应用程序提供服务。

标签: node.js angular


【解决方案1】:

也许这个 SO 问题会有所启发:

How do I host multiple Node.js sites on the same IP/server with different domains?

似乎您可以使用 nginx 来实现这一点,我们计划用它来托管我们的 node.js/angular 应用程序的多个版本

【讨论】:

    【解决方案2】:

    是的,这是可能的,因为在您的app.js 或任何您的节点条目脚本中检查请求的主机并从中解析子域。为此,您需要提供 angular2 和 angular4 应用程序。 这是示例代码。

    app.use('/',function(req,res,next){
        var subdomain = extractSubDomain(req.headers.host);
        if(subdomain=="subdomain1"){
            app.use(express.static(path.join(__dirname, 'angular4', 'dist')));      
        }else{
            app.use(express.static(path.join(__dirname, 'angular2', 'dist')));      
        }
        next();
    });
    

    在此代码中,当您找到 subdomain1 时,您将提供 angular4 应用程序,否则提供 angular2 应用程序。 我希望这能解决您的问题。

    【讨论】:

      猜你喜欢
      • 2012-08-24
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 2014-11-23
      相关资源
      最近更新 更多