首页 > 解决方案 > 特定于域的路由 - Nodejs

问题描述

我正在构建我的第一个大型/复杂 nodejs (express) 应用程序。它的特别之处在于我想在不同的域上提供应用程序。但根据域的不同,它应该显示略有不同的内容和样式。假设我有这三个域:

carapp.com

卡车应用程序.com

自行车应用程序.com

我使用 nginx 作为反向代理,它为静态文件提供服务。现在我需要帮助找出向每个域添加唯一路由的最佳方法。我考虑过添加这样的中间件:

app.use(function(req, res, next){
   if(req.headers.host === 'carapp.com'){
      app.use(indexRoutes1);
   }
   if(req.headers.host === 'truckapp.com'){
      app.use(indexRoutes2);
   }
   if(req.headers.host === 'bikeapp.com'){
      app.use(indexRoutes3);
   }
   next();
});

但我不知道这是否是正确的方法。希望有人能给我一些好的建议吗?

标签: node.jsexpressnginx

解决方案


您的实施正是我所建议的。使用主机标头与标头的预期用途相匹配Hosthttps ://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23

您可能会考虑默认为三个页面之一,以防Host标题丢失或与三个页面之一不匹配,例如,如果有人使用 IP 进行连接。


推荐阅读